下面由于java泛型信息被擦除了 所以下面的操作无法编译通过
采用显示传入类型的方法 作为泛型擦出的补偿
泛型擦除的缺陷 T t = new T(); 是无法编译通过的
模板方法弥补
public void f(Object o) {
if (o instanceof T) {
}
}
采用显示传入类型的方法 作为泛型擦出的补偿
Class<T> kind;
public Erased(Class<T> kind) {
this.kind = kind;
}
public void f(Object o) {
System.out.println(kind.isInstance(o));
}
泛型擦除的缺陷 T t = new T(); 是无法编译通过的
模板方法弥补
abstract class BaseCreator<T> {
T element;
public void Do() {
element = create();
}
abstract T create();
}