我相信我可以在使用new运算符调用构造函数时为类提供显式类型参数,如下所示:
MyClass<?> obj = new MyClass<Float>("test", 1);
其中MyClass的定义如下:
class MyClass<T>{
<K, V> MyClass(K k, V v){
}
我想在这种情况下,Float被赋值为类型参数T. 对于K&amp; V编译器从提供的实际参数中推断出类型。
我怀疑我是如何为构造函数提供显式类型参数的?
我知道我可以做的方法,如obj.method<Integer, String>(1, "test");
我想知道这种显式类型参数(对于K&amp; V;对于T来说)是否可能与构造函数一起使用。
希望有人能为我清除这一点。 提前谢谢。
答案 0 :(得分:6)
您在new
和类名之间提供类型参数:
MyClass<?> obj = new <String, Integer>MyClass<Float>("test", 1);
BTW,对于方法名称之前给出类型参数的方法:
obj.<Integer, String>method(1, "test");