6

我目前有一个 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

关于我应该在哪里查看为什么“所有”被忽略的任何建议?

4

1 回答 1

-2

不要一开始就使用它。

@SuppressWarnings("all")

说,你做错了什么。我会尽快取消与任何开发此类代码的开发人员的合同。警告是有原因的,一揽子忽略说“我不在乎我的代码是否真的有效”,就像别的什么都没有。这与编写单元测试完全相反:全面禁用编译器检查。

http://docs.oracle.com/javase/6/docs/technotes/tools/solaris/javac.html#options判断, “all”可能是一个 Eclipse 扩展。Sun/Oracle Java 6 编译器可能只支持以下值:uncheckedpathserialfinally和。fallthroughdeprecation

于 2012-12-05T19:00:08.373 回答