java 泛型对象能实例化吗T t=new T()

2024-11-17 11:47:13
推荐回答(4个)
回答1:

java中没法得到泛型参数化类型宏拆,因为在编译期没法确定泛型参数化类型,也就找不到对应的类字节码文件,自然就不行了
泛型反射的关键是获取ParameterizedType,再调用它的getActualTypeArguments()方法获得实际绑定的类型。但注意public class BookManager是不能被反射的,因为擦拭法的缘故。只有在Superclass 或者成答绝员变量(Field.getGenericType())等有函数返回ParameterizedType的时候才能成功反射,

你要蔽举枣么搞个构造函数把参数类型传进去才行

回答2:

JAVA里面API里面出现的T范型,是银羡说你运行时候的类型,而不是T。

举个例子,譬如List.toArray
T[] toArray(T[] a)
当你运行的时候写成list.toArray(new String[0])-->此时的T就是String类型,
当你写成list.toArray(new Integer[0]))--->此时的T就是Integer类型。

范型T并不特指某一碧竖特锋慧拍定类型,所以不能用T t = new T()

回答3:

泛型使不能通过new的方式来实例化的

回答4:

可以考虑下这样

T o=(T)(new Object());