Java - 每个枚举值的真/假

use*_*149 5 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;
      }

    }

}
Run Code Online (Sandbox Code Playgroud)

Tob*_*obb 9

那不是真的有用enum.您不会包含该boolean 标志,而是执行此操作:

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);
    }
}
Run Code Online (Sandbox Code Playgroud)

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