Java枚举,取决于bool值的不同值

时间:2014-11-05 11:08:15

标签: java enums

我想创建一个枚举类,让我们说:

public enum runtimeStatus {
    STATUS1("passed"),
    STATUS2("failed"),
    STATUS3("notrun");

    private String status;

    private runtimeStatus(String statusCode) {
            status = statusCode;

    }

    public String getStatus() {
        return status;
    }

}

好的,我正在使用runtimeStatus.STATUS1.getStatus();访问这些属性 但是我如何才能完成将布尔值传递给该调用,因此我获得了不同的输出。让我们说STATUS1如果传递boolean为TRUE返回“传递”如果它的FALSE返回“pass-type2”

3 个答案:

答案 0 :(得分:1)

检查以下方式。我们可以在枚举中定义多个字段,并在枚举方法中使用逻辑。

public enum runtimeStatus
{
    STATUS1("passed", "passedType2"), 
    STATUS2("failed", "failedType2"), 
    STATUS3("notrun", "notRunType2");

    private String statusTrue;

    private String statusFalse;

    private runtimeStatus(String statusTrueCode, String statusFalseCode)
    {
        this.statusTrue = statusTrueCode;
        this.statusFalse = statusFalseCode;

    }

    public String getStatus(boolean value)
    {
        return (value == true) ? statusTrue : statusFalse;
    }

}

答案 1 :(得分:0)

重载getStatus方法。

public String getStatus(boolean statusType) {
    if (statusType) {
        return getStatus();
    }
    return "passed-type2";
}

public String getStatus() {
        return status;
    }

答案 2 :(得分:0)

将以下方法添加到现有enum

  public String getStatus(boolean passed) {
    if(passed) {
      return STATUS1.getStatus();
    }else {
      return STATUS2.getStatus();
    }        
  }