簡體   English   中英

我可以使用參數枚舉嗎?

[英]Can I have enums with parameters?

我有一個預定的有限值列表。 這些值中的每一個都必須映射到另一個值。

范例:

AAAAA -> AZER
BBBBB -> BVCX

但是我也有,取決於一些參數:

CCCCC -> CPA1
CCCCC -> CPA2
CCCCC -> CPA3
CCCCC -> CPA4

我最初考慮使用枚舉,但是如何考慮參數呢?

您可以使用如下所示的構造函數來映射值

enum Apple {
  A(10), B(9), C(12), D(15), E(8);

  private int price; // price of each apple 

  // Constructor 
  Apple(int p) {
    price = p;
  }

  int getPrice() {
    return price;
  }
}

您可以向枚舉添加方法,以傳遞參數,例如

enum MyEnum {
  AAAAA {
    @Override String mappedValue(Param parameter) { return "AZER"; }
  },
  BBBBB {
    @Override String mappedValue(Param parameter) { return "BVCX"; }
  },
  CCCCC {
    @Override String mappedValue(Param parameter) {
      if (parameter.equals(something)) {
        return "CPA1";
      } else if (parameter.equals(somethingElse)) {
        return "CPA2";
      } else {
        return "CPA3";
      }
    }
  }
  ;

  abstract String mappedValue(Param parameter);
}

暫無
暫無

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

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