为何下面强转允许上面的不允许?
首先,你的泛型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;
}
}