我正在试图弄清楚什么是我的问题的最佳解决方案.
我有一个对象,其状态可能是三种可能之一,但它可以在运行时更改.我有三个状态标志,对象可以.
我没有经验,ENUM并试图弄清楚这是不是最好的方法.
我希望能够以一个特定的标志设置为true或false然后可以设置一个又一个.当我遍历数组列表中的这些对象列表时,我需要能够获得每个标志的状态.
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)
那不是真的有用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关键字实例化的,而是直接引用,如上面的代码所示.)
| 归档时间: |
|
| 查看次数: |
14291 次 |
| 最近记录: |