Java - 每个枚举值的真/假

标签 java enums

我正在尝试找出解决我的问题的最佳方法。

我有一个对象,其状态可能是三种可能性之一,但它可以在运行时更改。我有对象可以是的三个状态标志。

我没有使用 ENUM 的经验,并试图弄清楚这是否是最好的方法。

我希望能够将特定标志设置为 truefalse,然后能够设置另一个。当我遍历数组列表中这些对象的列表时,我还需要能够获取每个标志的状态。

class Patient 
{


//REST OF the object

public enum Status 
{
     INPATIENT(false),
     OUTPATIENT(false),
     EMERGENCY(false);


      private final boolean isStatus;

      Status(boolean isStatus) 
      {
        this.isStatus = isStatus;
      }

      public boolean isStatus()
      {
        return this.isStatus;
      }

    }

}

最佳答案

enum 并不是这样工作的。您不会包括 boolean flag,而是这样做:

public enum Status {
   INPATIENT,
   OUTPATIENT,
   EMERGENCY;
}

public class Patient {
    private Status status;

    public void setStatus(final Status status) {
        this.status = status;
    }
}

public class SomeService {
     public void someMethod(final Patient patient) {
         patient.setStatus(Status.INPATIENT);
         patient.setStatus(Status.OUTPATIENT);
         patient.setStatus(Status.EMERGENCY);
    }
}

类型为 enum 的变量可以保存该 enum 的任何一个值(或 null)。如果要更改状态,请更改变量引用的枚举值。 (Enumclass 不同,因为它们不是用 new 关键字实例化的,而是直接引用,如上代码。)

关于Java - 每个枚举值的真/假,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24769742/

相关文章:

java - JProgressBar.setMaximum(int) 有时似乎不起作用

asp.net-mvc - 如何防止 EnumDropDownListFor 将 0 设置为 optionLabel 值?

Java Enum 方法 - 每个对象的 switch 与 Overriding

java - 如何获取 UTC 日期时间

java - 对自定义插件的并发调用一次处理 1 个

java - 模拟 protected 构造函数

java - 在Java中如何编写代码来循环任意枚举?

Java 集合在提供引用的同时确保唯一性

python 2 : What is the most elegant/pythonic way of doing a enum with string interpretations?

iphone - 检查 C 枚举是否存在