【问题标题】:How do I suppress Eclipse 3.5's warnings of dead code如何抑制 Eclipse 3.5 的死代码警告
【发布时间】:2010-11-08 07:16:00
【问题描述】:

我使用class for detecting email addresses,它使用静态最终布尔值来配置匹配行为。自从我升级到 Eclipse 3.5 后,我收到有关死代码的警告,因为 Eclipse 注意到其中的一个分支无法到达:

private static final boolean ALLOW_DOMAIN_LITERALS = false;
private static final String domain = ALLOW_DOMAIN_LITERALS ? rfc2822Domain : rfc1035DomainName;

奇怪的是,它对此很满意:

private static final String domain;
static {
    if(ALLOW_DOMAIN_LITERALS) {
        domain = rfc2822Domain;
    } else {
        domain= rfc1035DomainName;
    }
}

因为它似乎可以识别常见的if(DEBUG) 模式,但三元运算符似乎不算数。

由于我不想为了让 Eclipse 满意而过多地分叉该类,所以我宁愿将 @SuppressWarnings 放在顶部而不是更改代码。不幸的是,除了蛮力"all",我找不到匹配的。是否有仅用于死代码检测的值?

【问题讨论】:

    标签: java eclipse warnings suppress-warnings


    【解决方案1】:

    更新:来自亚当的评论:

    在 Eclipse 3.6 和更新的 Eclipse 版本中,@SuppressWarnings("unused") 现在可用于抑制“死代码”警告。见Christopher Stock's answer

    对于@SuppressWarnings,另请参阅Eclipse 4.4(Luna) help

    原答案:

    Eclipse 3.5“知道”的所有 SuppressWarnings 值都列在 this page 中。似乎只抑制新的死码检测没有任何价值。但是您可以在 domain 声明之前使用 @SuppressWarnings("all"),这样它只会抑制针对该行而不是整个类的警告:

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

    由于死代码检查是一项新功能,您还可以建议在 Eclipse bug database 中进行改进以支持三元运算。

    【讨论】:

    【解决方案2】:

    您可以使用

    禁用“死代码”警告
    @SuppressWarnings( "unused" )
    

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

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

    "unused" 抑制与未使用代码和死代码相关的警告

    问候

    克里斯托弗

    【讨论】:

    • 投了赞成票,因为它可能对来这里的人有用。该功能当时不存在,但现在确实存在(请参阅我的 cmets 中已接受的答案中链接的 Bugzilla 问题)。
    【解决方案3】:

    Windows -> Preferences > Java > Compiler > Errors/Warnings 下的Potential programming problems 部分中选择Ignore

    【讨论】:

    • 但我通常喜欢这个功能,只是在这里失败了。如果是我自己的代码,我会更改它。您也可以在项目级别禁用它(即在项目属性中启用项目特定的编译器设置),但我什至不想这样做。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-09
    • 1970-01-01
    • 1970-01-01
    • 2017-04-11
    • 1970-01-01
    • 2011-04-17
    • 2011-02-11
    相关资源
    最近更新 更多