使用Eclipse,我在此Java代码段中遇到了死代码错误:

public void rebirthAction() {
    Player p = new Player(null);
    Equipment e = new Equipment();
    Skills s = new Skills(null);
    if ((Equipment.SLOT_SHIELD == -1) && (Equipment.SLOT_WEAPON == -1) && (Equipment.SLOT_CHEST == -1) && (Equipment.SLOT_BOTTOMS == -1) && (Equipment.SLOT_AMULET == -1) && (Equipment.SLOT_BOOTS == -1) && (Equipment.SLOT_HELM == -1) && (Equipment.SLOT_GLOVES == -1))
        for (int i = 0; i <= 7; i++) {
            p.getSkills().setLevel(i, 1);
            p.getSkills().setExperience(i, 0);
            //updateRequired = true;
            //appearanceUpdateRequired = true;
            s.getTotalLevel();
            s.getCombatLevel();
            Combat.calculateMaxHit(p);
            p.getSkills();
            rebirthCount++;
        }
}

最佳答案

if语句仅检查来自Equipment类的最终静态值,并且编译器检测到该条件永远不能为true,因此以下几行是无效代码(不可访问)。

10-08 13:42