龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > JAVA开发 >

使用Java程序的泛型应该注意的几个地方

时间:2009-12-23 15:42来源:未知 作者:admin 点击:
分享到:
1、不可以用一个本地类型(如int float)来替换泛型 2、运行时类型检查,不同类型的泛型类是等价的(Pair与Pair是属于同一个类型Pair),这一点要非凡注重,即假如a instanceof Pair==true的

  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;

  这里编译器不会报错,但存在着严重的运行时错误隐患。


  
精彩图集

赞助商链接