class Father{
}
class Son extends Father{
}
public class GenericInherit<T> {
T data;
public T getData() {
return data;
}
public void setData(T data) {
this.data = data;
}
public void print(GenericInherit<Father> genericInherit){
System.out.println(genericInherit);
}
public static void main(String[] args) {`
GenericInherit<Father> genericInherit = new GenericInherit<>();
//GenericInherit genericInherit = new GenericInherit<>();
genericInherit.print(new GenericInherit<Son>());`
}
}
如果用注释里声明方式,可以顺利运行;按代码的方式,直接IDE就检测出类型问题了。这个方法和泛型类本身的泛型参数T不一样,为什么会出现这种情况?
为了兼容以前没有泛型的旧语法。
如果不使用泛型就不会检测泛型类型