java 泛型对象能实例化吗T t=new T()
4个回答
展开全部
java中没法得到泛型参数化类型,因为在编译期没法确定泛型参数化类型,也就找不到对应的类字节码文件,自然就不行了
泛型反射的关键是获取ParameterizedType,再调用它的getActualTypeArguments()方法获得实际绑定的类型。但注意public class BookManager<Book>是不能被反射的,因为擦拭法的缘故。只有在Superclass 或者成员变量(Field.getGenericType())等有函数返回ParameterizedType的时候才能成功反射,
你要么搞个构造函数把参数类型传进去才行
泛型反射的关键是获取ParameterizedType,再调用它的getActualTypeArguments()方法获得实际绑定的类型。但注意public class BookManager<Book>是不能被反射的,因为擦拭法的缘故。只有在Superclass 或者成员变量(Field.getGenericType())等有函数返回ParameterizedType的时候才能成功反射,
你要么搞个构造函数把参数类型传进去才行
展开全部
JAVA里面API里面出现的T范型,是说你运行时候的类型,而不是T。
举个例子,譬如List.toArray
<T> T[] toArray(T[] a)
当你运行的时候写成list.toArray(new String[0])-->此时的T就是String类型,
当你写成list.toArray(new Integer[0]))--->此时的T就是Integer类型。
范型T并不特指某一特定类型,所以不能用T t = new T()
举个例子,譬如List.toArray
<T> T[] toArray(T[] a)
当你运行的时候写成list.toArray(new String[0])-->此时的T就是String类型,
当你写成list.toArray(new Integer[0]))--->此时的T就是Integer类型。
范型T并不特指某一特定类型,所以不能用T t = new T()
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
泛型使不能通过new的方式来实例化的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以考虑下这样
T o=(T)(new Object());
T o=(T)(new Object());
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询