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

2022-09-03 00:08:46

我使用一个类来检测电子邮件地址,该类使用静态最终布尔值来配置匹配行为。由于我升级到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"


答案 1

更新:来自亚当的评论:

在 Eclipse 3.6 和更新的版本中,Eclipse 版本现在可用于抑制“死代码”警告。请参阅克里斯托弗·斯托克的答案@SuppressWarnings("unused")

另请参阅 Eclipse 4.4(Luna) 帮助以获取@SuppressWarnings。

原答:

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

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

因为死代码检查是一个新的,所以你也可以建议在Eclipse bug数据库中加入一个支持三元操作的enchancement。


答案 2

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


推荐