17

我使用一个类来检测使用静态最终布尔值来配置匹配行为的电子邮件地址。自从我升级到 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 开心而过多地分叉类,所以我宁愿把 an@SuppressWarnings放在顶部而不是更改代码。不幸的是,除了 brute-force 之外,我找不到匹配的"all"。是否有仅用于死代码检测的值?

4

3 回答 3

20

更新:来自亚当的评论:

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

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

原答案:

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

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

因为死代码检查是一项新功能,您还可以建议在Eclipse 错误数据库中进行增强,以支持三元操作。

于 2009-07-06T05:44:13.010 回答
8

IgnoreWindows -> Preferences > Java > Compiler > Errors/Warnings下方选择Potential programming problems_

于 2009-07-06T05:26:37.990 回答
7

您可以使用禁用“死代码”警告

@SuppressWarnings( "unused" )

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

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

“未使用”以抑制与未使用代码和死代码相关的警告

问候

克里斯托弗

于 2013-08-01T15:16:32.643 回答