2015-03-25 104 views
2

我相信我能爲這個類提供明確的類型參數在調用構造函數與new運算符,就像這樣:的Java泛型 - 用於構造函數調用顯式類型參數

MyClass<?> obj = new MyClass<Float>("test", 1);

其中MyClass的是這樣定義的:

class MyClass<T>{ 
    <K, V> MyClass(K k, V v){   
} 

我在這種情況下浮球假設被分配給輸入參數T. 並且對於K & V編譯器推斷從提供的實際參數的類型。

我的疑問是我如何爲構造函數提供顯式類型參數? 我知道的方法,我可以做像obj.method<Integer, String>(1, "test");

我不知道這種顯式類型參數(對於K&V;不適用於T)可能與構造函數。

希望有人能爲我清楚這一點。 在此先感謝。

+0

嗯,如果你的類接受的類型參數,他們應該全部在類聲明中聲明。無論如何,如果你需要兩個,爲什麼只定義一個? – fge 2015-03-25 10:24:33

+0

@fge:這些不是類的類型參數,而是泛型構造函數的類型參數(類似於泛型方法的類型參數)。 – newacct 2015-03-25 20:01:34

回答

5

你給new和類名之間的類型參數:

MyClass<?> obj = new <String, Integer>MyClass<Float>("test", 1); 

BTW,對方法你給類型參數之前,方法名稱:

obj.<Integer, String>method(1, "test"); 
+0

就是這樣。涼。謝謝。 – 2015-03-25 10:38:21

相關問題