为何这样强转却不行?
为何下面强转允许上面的不允许?
回答
首先,你的泛型T没有意义,你的List<Class<Integer>>
已经限定死了,第二ts1方法返回的是Class类对象。泛型不能滥用,否则使用过程不仅会出错,还会造成其他一些不可预知的事情。泛型你可以看做他就是Object类型,他只是为了约束为某一类型而存在的
public class Test<T> { public List<Class<T>> ts(T t){
List<Class<T>> classes = new ArrayList<>();// java8 开始后面可以不用声明
classes.add((Class<T>) t.getClass());
return classes;
}
}
以上是 为何这样强转却不行? 的全部内容, 来源链接: utcz.com/a/37855.html