我正在尝试找出解决我的问题的最佳方法。
我有一个对象,其状态可能是三种可能性之一,但它可以在运行时更改。我有对象可以是的三个状态标志。
我没有使用 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;
}
}
}
最佳答案
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
)。如果要更改状态,请更改变量引用的枚举值。 (Enum
与 class
不同,因为它们不是用 new
关键字实例化的,而是直接引用,如上代码。)
关于Java - 每个枚举值的真/假,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24769742/