我使用一个类来检测使用静态最终布尔值来配置匹配行为的电子邮件地址.自从我升级到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".是否只有死代码检测的值?