2015-03-25 106 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

相关问题