1、不可以用一个本地类型(如int float)来替换泛型
2、运行时类型检查,不同类型的泛型类是等价的(Pair与Pair是属于同一个类型Pair),这一点要特别注意,即如果a instanceof Pair==true的话,并不代表a.getFirst()的返回值是一个String类型 3、泛型类不可以继承Exception类,即泛型类不可以作为异常被抛出 4、不可以定义泛型数组 5、不可以用泛型构造对象,即:first = new T(); 是错误的 6、在static方法中不可以使用泛型,泛型变量也不可以用static关键字来修饰 7、不要在泛型类中定义equals(T x)这类方法,因为Object类中也有equals方法,当泛型类被擦除后,这两个方法会冲突 8、根据同一个泛型类衍生出来的多个类之间没有任何关系,不可以互相赋值,即: Pair p1; Pair p2; p1=p2; 这种赋值是错误的。 9、若某个泛型类还有同名的非泛型类,不要混合使用,坚持使用泛型类 Pair < Manager > managerBuddies = new Pair < Manager >(ceo, cfo); Pair rawBuddies = managerBuddies; 这里编译器不会报错,但存在着严重的运行时错误隐患。 没有相关教程
3、泛型类不可以继承Exception类,即泛型类不可以作为异常被抛出
4、不可以定义泛型数组
5、不可以用泛型构造对象,即:first = new T(); 是错误的
6、在static方法中不可以使用泛型,泛型变量也不可以用static关键字来修饰
7、不要在泛型类中定义equals(T x)这类方法,因为Object类中也有equals方法,当泛型类被擦除后,这两个方法会冲突
8、根据同一个泛型类衍生出来的多个类之间没有任何关系,不可以互相赋值,即:
Pair p1; Pair p2; p1=p2; 这种赋值是错误的。 9、若某个泛型类还有同名的非泛型类,不要混合使用,坚持使用泛型类 Pair < Manager > managerBuddies = new Pair < Manager >(ceo, cfo); Pair rawBuddies = managerBuddies; 这里编译器不会报错,但存在着严重的运行时错误隐患。
9、若某个泛型类还有同名的非泛型类,不要混合使用,坚持使用泛型类
Pair < Manager > managerBuddies = new Pair < Manager >(ceo, cfo);
Pair rawBuddies = managerBuddies;
这里编译器不会报错,但存在着严重的运行时错误隐患。
Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved. 闵涛 E_mail:admin@mintao.net(欢迎提供学习资源)
鄂公网安备 42011102001154号
站长:MinTao ICP备案号:鄂ICP备11006601号-18