IDE显示条件始终为false
我有这个密码IDE显示条件始终为false,ide,Ide,我有这个密码 enum EnumA { VALUE_X(EnumA.EnumB.VALUE_J), VALUE_Y(EnumA.EnumB.VALUE_J); EnumB propertyC; enum EnumB { VALUE_J; int propertyX; } EnumA(EnumB c) { this.propertyC = c; } } public class { main(...
enum EnumA {
VALUE_X(EnumA.EnumB.VALUE_J),
VALUE_Y(EnumA.EnumB.VALUE_J);
EnumB propertyC;
enum EnumB {
VALUE_J;
int propertyX;
}
EnumA(EnumB c) {
this.propertyC = c;
}
}
public class {
main(...) {
EnumA.VALUE_X.propertyC.propertyX = 1;
EnumA.VALUE_Y.propertyC.propertyX = 2;
if(EnumA.VALUE_X.propertyC.propertyX == EnumA.VALUE_Y.propertyC.propertyX) {
(Any statement)
}
}
}
所以问题是我的IDE显示条件总是错误的。但是当我运行项目时,语句会被执行(条件为true)为什么?因为枚举值是静态值X和值Y使用相同的值J实例,而属性X又具有相同的值 您将其设置为1,然后再设置为2 您可以通过记录/打印分配之前、之间和之后的信息来检查这一点。它应该分别为0、1和2 IDE声明它始终为false的原因很可能是,对变量的简单检查表明,它们是不同的