我目前正在使用下面的枚举。
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
。我能知道为什么会这样吗?而且,我该如何解决?
答案 0 :(得分:2)
此程序http://ideone.com/uXiIj8按预期打印
public static void main (String[] args) throws java.lang.Exception
{
{
ConditionCode sal = ConditionCode.SAL;
System.out.print(sal + " ");
System.out.println(sal.compareTo(ConditionCode.AL) == 0);
}
{
ConditionCode sal = ConditionCode.CC;
System.out.print(sal + " ");
System.out.println(sal.compareTo(ConditionCode.AL) == 0);
}
}
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
}
打印
SAL false
CC false
我能知道为什么会这样吗?而且,我该如何解决?
您很可能在运行代码之前更改代码并重新编译程序,或者您正在运行与您认为的程序不同的程序。我会确保你的IDE设置正确,以便在运行它之前重新编译你的程序,如果它看起来很好的话可能会重新启动它。