Effective Java笔记第四章泛型
第二节消除非受检警告
1.用泛型编程时,会遇到许多编译器警告:非受检强制转化警告,非受检方法调用警告,非受检普通数组创建警告,以及非受检转换警告。当你越来越熟悉泛型之后,遇到的警告也会越来越少。
2.当你遇到需要进行一番思考的警告时,要坚持住。要尽可能的消除每一个非受检警告。如果消除了所有警告,就可以确保代码是类型安全的,这是一件很好的事情。这意味着不会在运行时出现ClassCastException异常,你会更加自信自己的程序可以实现预期的功能。
3.如果无法消除警告。同时可以证明引起警告的代码是类型安全的,(只有在这种情况下)可以用一个@SuppressWarnings(“unchecked”)注解来禁止这条警告。
4.@SuppressWarnings注解可以用在任何粒度的级别中,从单独的局部变量声明到整个类都可以。应该始终在尽可能小的范围中使用@SuppressWarnings注解。它通常是个变量声明,或是非常简短的方法或者构造器。永远不要在整个类上使用@SuppressWarnings,这样做可能会掩盖了重要的警告。
5.如果你发现自己在长度不止一行的方法或者构造器中使用了@SuppressWarnings注解,可以将它移到一个局部变量的声明中。虽然你必须声明一个新的局部变量,不过这么做还是值得的。比如:ArrayList类的源码中的forEach方法中就有。
@Override