我目前正在编写一个代码,我在下面使用枚举。枚举不初始化正确的值
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(); }' –