1、不可以用一个本地类型(即基本类型,如int float)来替换泛型.比如List<Integer>不能用List<int>型式
List<int> a = new ArrayList<int>();
List<Integer> a = new ArrayList<Integer>();
2、 运行时类型检查,不同类型的泛型类是等价的(Pair<String>与Pair<Employee>是属于同一个类型 Pair),这一点要特别注意:即如果a instanceof Pair<String>==true的话,并不代表a.getFirst()的返回值是一个String类型
3、泛型类不可以继承Exception类,即泛型类不可以作为异常被抛出(但是可以可以在处理异常的throws子句中使用类型参数,这使得你可以编写随checked exception的类型不同而发生变化的泛型代码)
4不可以定义泛型数组
5不可以用泛型构造对象 T a = new T();
6在static方法中不可以使用泛型, 泛型变量不可以用static 关键字 修饰
7 不要在泛型类中定以 equals(T x) 这类方法, 因为Object 中也有equals 方法, 当泛型 被擦除 后,两个方法会冲突
8 根据同一个泛型类衍生出的多个类之间没有任何关系,不可以相互赋值
9若 某个泛型类还有同名的非泛型类,不要混合使用,坚持使用泛型类
原文来自 http://www.360doc.com/content/12/0528/19/10042054_214326027.shtml# 感谢
本文详细解读了Java泛型的使用规则、注意事项及常见误解,包括泛型类的继承、数组、构造方法、静态方法、equals方法的使用,以及泛型类之间的赋值限制。强调了泛型类与基本类型、Exception类的关系,提供了避免常见的编码陷阱的策略。
1383

被折叠的 条评论
为什么被折叠?



