我目前有一个Enum,它的构造函数可以为null,并包含以下SuppressWarning批注:
@SuppressWarnings("all")
public enum TheEnum {
...
AN_ENUM_VALUE(null),
...
...
private TheEnum(TheEnum ... args) {
if (args != null){
...
...
}
...
}
我当前正在使用MyEclipse工作台10.6,似乎可以很好地使用批注。但是,在开发机上进行编译时,我收到与'TheEnum'类有关的警告。
奇怪的是,在项目中,到处都是@SuppressWarnings(“ unchecked”),并且编译器设法将其选中并忽略它们。
由于遗留问题,我们必须使用JDK 1.5.0_17进行编译,但是看起来它应该采用“全部”抑制:
[root@xxx]:/opt/jdk1.5.0_17/bin# ./javac -X
...
-Xlint:{all,deprecation,unchecked,fallthrough,path,serial,finally,-deprecation,- unchecked,-fallthrough,-path,-serial,-finally}Enable or disable specific warnings
关于我应该去哪里看看为什么“全部”被忽略的任何建议?
首先不要使用它。
@SuppressWarnings("all")
说,你做错了。我会尽快取消与任何开发此类代码的开发人员的合同。出现警告是有原因的,一无所获的忽略表示“我不在乎我的代码是否有效”。这与编写单元测试完全相反:全面禁用编译器检查。
从http://docs.oracle.com/javase/6/docs/technotes/tools/solaris/javac.html#options判断,“ all”可能是eclipse扩展。太阳/甲骨文的Java编译器6可能只支持以下值:unchecked
,path
,serial
,finally
,fallthrough
和deprecation
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句