我有一個預先確定的有限值列表。每個值都必須映射到另一個值。我可以使用參數枚舉嗎?
例子:
AAAAA -> AZER
BBBBB -> BVCX
但我也有,這取決於一些參數:
CCCCC -> CPA1
CCCCC -> CPA2
CCCCC -> CPA3
CCCCC -> CPA4
我最初以爲用枚舉,但我怎麼在參數因素?
我有一個預先確定的有限值列表。每個值都必須映射到另一個值。我可以使用參數枚舉嗎?
例子:
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;
}
}
根據某些參數,「CCCCC」不允許有四種不同的價格「。 – Thilo
可以添加方法來枚舉,爲了傳遞的參數,例如
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);
}
通過向您的枚舉添加一個變量,並將其設置在它的構造函數中。 – Stultuske
什麼邏輯'CCCCC'被映射到不同的值? –
通過閱讀[this](https://docs.oracle.com/javase/tutorial/java/javaOO/enum.html) –