浏览 2811 次
锁定老帖子 主题:Java泛型应该注意的细节
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-09-28
2、运行时类型检查,不同类型的泛型类是等价的(Pair<String>与Pair<Employee>是属于同一个类型 Pair),这一点要特别注意:即如果a instanceof Pair<String>==true的话,并不代表a.getFirst()的返回值是一个String类型 3、泛型类不可以继承Exception类,即泛型类不可以作为异常被抛出 4、不可以定义泛型数组 5、不可以用泛型构造对象,即T first = new T(); 是错误的 6、在static方法中不可以使用泛型,泛型变量也不可以用static关键字来修饰 7、不要在泛型类中定义equals(T x)这类方法,因为Object类中也有equals方法,当泛型类被擦除后,这两个方法会冲突 8、根据同一个泛型类衍生出来的多个类之间没有任何关系,不可以互相赋值,即Pair<Number> p1; Pair<Integer> p2; p1=p2; 这种赋值是错误的。 9、若某个泛型类还有同名的非泛型类,不要混合使用,坚持使用泛型类 Pair<Manager> managerBuddies = new Pair<Manager>(ceo, cfo); Pair rawBuddies = managerBuddies; 这里编译器不会报错,但存在着严重的运行时错误隐患 有什么错误或者更好的请告诉小弟!多多学习呀! 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-09-28
要是有为什么就完美了,期待补充
|
|
返回顶楼 | |
发表时间:2008-09-28
看了第一个:1、不可以用一个本地类型(如int float)来替换泛型.比如List<Integer>不能用List<int>型式
编译时能通过吗? |
|
返回顶楼 | |