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的原因很可能是,对变量的简单检查表明,它们是不同的