Java 泛型 - 构造函数调用的显式类型参数

Java Generic - Explict type arguments for constructor invocation

我相信我可以在使用 new 运算符调用构造函数时为 class 提供显式类型参数,如下所示:

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

MyClass 的定义如下:

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

我想在这种情况下,Float 被分配给了类型参数 T。 对于 K & V 编译器从提供的实际参数推断类型。

我的疑问是如何为构造函数提供显式类型参数? 我知道我可以做的方法 obj.method<Integer, String>(1, "test");

我想知道构造函数是否可以使用这种显式类型参数(对于 K&V;不适用于 T)。

希望有人能帮我解决这个问题。 提前致谢。

您在 new 和 class 之间给出类型参数名称:

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

顺便说一句,对于你在方法名称前给出类型参数的方法:

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