[英]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.