我目前正在編寫一個代碼,我在下面使用枚舉。枚舉不初始化正確的值
public enum ConditionCode {
EQ, SEQ, NE, SNE, CS, SCS, HS, SHS, CC, SCC, LO, SLO, MI, SMI, PL, SPL, VS, SVS, VC,
SVC, HI, SHI, LS, SLS,GE, SGE, LT, SLT, GT, SGT, LE, SLE, SAL, AL
}
我想枚舉ConditionCode.ALS
,並打印出來,並通過做比較,AL這個
public static void main(String[] args) {
ConditionCode sal = ConditionCode.SAL;
System.out.print(sal.toString + " ");
System.out.println(sal.compareTo(ConditionCode.AL) == 0);
}
我感到奇怪的是,這個命令打印AL
,而不是SAL false
,它同樣爲所有其他枚舉例如
public static void main(String[] args) {
ConditionCode cc = ConditionCode.CC;
System.out.print(cc.toString + " ");
System.out.println(cc.compareTo(ConditionCode.AL) == 0);
}
還將打印AL
而不是CC false
。我能知道它爲什麼這樣做嗎?而且,我該如何解決它?
您的代碼無法編譯。它會失敗'sal.toString'(parens失蹤)。 – fge
它會因爲它會使用java.Lang.Enum.toString(),如果你必須改變枚舉的輸出,例如,如果你想讓你所有的類的枚舉打印'S',你必須覆蓋函數toString類似於'public String toString(){return'S'; }'否則默認的toString就是'public String toString(){return super.toString(); }' –