我正在学习 Java 的泛型,在实例化从泛型参数接收到的类型时遇到了一些问题(尽管这在 C# 中是可能的)
class Person {
public static <T> T say() {
return new T; // this has error
}
}
我试过这个:Java中的泛型-实例化T
public static <T> T say(Class<?> t) {
return t.newInstance();
}
错误:
incompatible types
found : capture#426 of ?
required: T
那是行不通的。下面看起来不错,但它需要实例化一些类,不能用于静态方法:Instantiating generics type in java
public class Abc<T>
{
public T getInstanceOfT(Class<T> aClass)
{
return aClass.newInstance();
}
}
这是Java 人所说的类型擦除吗?这是类型擦除的限制吗?
这个问题的解决方法是什么?