IDE显示条件始终为假

时间:2020-01-01 20:56:56

标签: 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(...) {
      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显示该条件始终为false。但是当我运行项目时,该语句得到执行(条件为true)为什么?

1 个答案:

答案 0 :(得分:0)

由于枚举值是静态的,因此VALUE_X和VALUE_Y使用的是VALUE_J的相同实例,而对于propertyX则具有相同的值。

您将其设置为1,然后设置为2。

您可以通过登录/打印分配之前,之间和之后的信息来进行检查。分别为0、1和2。

IDE声明其始终为假的原因很可能是,对变量的简单检查显示它们是不同的。