如何抑制Eclipse 3.5的死代码警告

Pet*_*ker 16 java eclipse warnings suppress-warnings

我使用一个类来检测使用静态最终布尔值来配置匹配行为的电子邮件地址.自从我升级到Eclipse 3.5后,我收到有关死代码的警告,因为Eclipse注意到无法访问其中的一个分支:

private static final boolean ALLOW_DOMAIN_LITERALS = false;
private static final String domain = ALLOW_DOMAIN_LITERALS ? rfc2822Domain : rfc1035DomainName;
Run Code Online (Sandbox Code Playgroud)

奇怪的是,它很满意:

private static final String domain;
static {
    if(ALLOW_DOMAIN_LITERALS) {
        domain = rfc2822Domain;
    } else {
        domain= rfc1035DomainName;
    }
}
Run Code Online (Sandbox Code Playgroud)

因为它似乎认识到了常见的if(DEBUG)模式,但三元运算符似乎并不算数.

因为我宁愿不过分太多只是为了让Eclipse保持开心,所以我更喜欢把它@SuppressWarnings放在顶部而不是改变代码.不幸的是,除了蛮力之外,我找不到匹配的"all".是否只有死代码检测的值?

Csa*_*a_H 19

更新:来自Adam的评论:

在Eclipse 3.6和更新的Eclipse版本@SuppressWarnings("unused")中,现在可以用来抑制"死代码"警告.请参阅Christopher Stock的回答.

另请参阅@SuppressWarnings的Eclipse 4.4(Luna)帮助.

原始答案:

Eclipse 3.5"know"的所有SuppressWarnings值都列在此页面中.似乎没有用于仅抑制新的死码检测的价值.但是您可以@SuppressWarnings("all")domain声明之前使用它,因此它将仅为该行禁止警告,而不是针对整个类:

private static final boolean ALLOW_DOMAIN_LITERALS = false;
@SuppressWarnings("all") 
private static final String domain = ALLOW_DOMAIN_LITERALS ? rfc2822Domain : rfc1035DomainName;
Run Code Online (Sandbox Code Playgroud)

由于死代码检查是一个新的,您还可以建议在Eclipse错误数据库中增强以支持三元操作.

  • 现在验证了两个请求的状态是否已修复 (3认同)

J-1*_*DiZ 8

选择IgnoreWindows -> Preferences > Java > Compiler > Errors/WarningsPotential programming problems部分


Chr*_*ock 6

您可以使用禁用"死代码"警告

@SuppressWarnings( "unused" )
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参阅eclipse文档:

http://help.eclipse.org/kepler/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2Ftasks%2Ftask-suppress_warnings.htm

"unused"用于禁止相对于未使用的代码和死代码的警告

问候

克里斯托弗

  • 投票,因为它可能对来这里的人有用.该功能当时并不存在,但它现在已经存在(请参阅我对已接受答案的评论中链接的Bugzilla问题). (2认同)