簡體   English   中英

Java枚舉,根據bool值的不同而不同

[英]Java enum, different value depending on bool value

我想創建一個枚舉類,可以這樣說:

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();訪問這些屬性runtimeStatus.STATUS1.getStatus(); 但是如何完成將布爾值傳遞給該調用的方法,所以得到了不同的輸出。 對於STATUS1,如果傳遞的布爾值為TRUE,則返回“傳遞”;如果FALSE為FALSE,則返回“傳遞的類型2”

檢查以下方式。 我們可以在枚舉中定義盡可能多的字段,並在枚舉方法中具有邏輯。

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

}

重載您的getStatus方法。

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

public String getStatus() {
        return status;
    }

將以下方法添加到您現有的enum

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM