我有一个预先确定的有限值列表。每个值都必须映射到另一个值。
示例:
AAAAA -> AZER
BBBBB -> BVCX
但我也有,取决于一些参数:
CCCCC -> CPA1
CCCCC -> CPA2
CCCCC -> CPA3
CCCCC -> CPA4
我最初想过使用枚举,但我如何考虑参数?
答案 0 :(得分:1)
您可以使用下面的构造函数来映射值
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;
}
}
答案 1 :(得分:1)
您可以向枚举添加方法,以传递参数,例如
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);
}