2014-11-05 62 views
0

我想創建一個枚舉類不同的值,可以說:Java的枚舉,取決於布爾值

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

    private String status; 

    private runtimeStatus(String statusCode) { 
      status = statusCode; 

    } 

    public String getStatus() { 
     return status; 
    } 

} 

好吧,我accesing這些屬性與runtimeStatus.STATUS1.getStatus(); 但我怎麼能做到通過一個布爾到那個電話,所以我得到了不同的輸出。讓我們說STATUS1如果傳遞布爾值爲TRUE返回「通過」,如果它的FALSE返回「傳遞類型2」

+0

Write方法 – 2014-11-05 11:10:46

+0

添加一個布爾變量'subtype'您枚舉類 – bobah 2014-11-05 11:11:01

回答

1

檢查以下方式。我們可以在枚舉中定義許多字段,並在枚舉方法中使用邏輯。像取決於`status`值的getStatus`(布爾狀態)`和返回不同的枚舉值

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; 
    } 

} 
+0

這正是我想要完成的。謝謝,並感謝所有人的建議。 – Alchnemesis 2014-11-05 11:33:28

0

重載您的getStatus方法。

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

public String getStatus() { 
     return status; 
    } 
0

添加下面的方法到現有enum

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