我有一个枚举,每个枚举都必须有特定的字段,比如价格,这些字段不会被修改,我想创建一个类来获取这个字段,在这种情况下我能做什么?如何使用枚举调用类,或者我能做什么?
发布于 2022-01-29 18:25:02
你可以试试这个:
public enum SalaryHeadMasterEnum {
BASIC_PAY("basic pay"),
MEDICAL_ALLOWANCE("Medical Allowance");
private String name;
private SalaryHeadMasterEnum(String stringVal) {
name=stringVal;
}
public String toString(){
return name;
}
public static String getEnumByString(String code){
for(SalaryHeadMasterEnum e : SalaryHeadMasterEnum.values()){
if(e.name.equals(code)) return e.name();
}
return null;
}
}
现在您可以使用下面的代码按值检索Enum
SalaryHeadMasterEnum.getEnumByString("Basic Pay")
使用下面的代码获取ENUM作为字符串
SalaryHeadMasterEnum.BASIC_PAY.name()
使用下面的代码获取枚举的字符串值
SalaryHeadMasterEnum.BASIC_PAY.toString()
发布于 2022-01-30 02:04:01
Answer by thakre是正确的。我将重申,更直接地讨论这个问题的具体内容。
每个枚举都必须有特定的字段,例如价格,
所以用这样的字段来定义你的枚举。
enum Flavor {
private BigDecimal price ;
}
将用于该字段的值传递给每个枚举对象的构造函数。
enum Flavor {
// Enum objects.
VANILLA( 2 ) , CHOCOLATE( 2 ) , LAVENDER( 4 )
// Member fields.
private int price ;
// Constructor.
public Flavor ( int price ) {
this.price = price ;
}
}
我想创建一个类来获取这个字段,在这种情况下我能做什么?
不需要再上一节课。只需在枚举上添加getter方法即可。
enum Flavor {
// Enum objects.
VANILLA( 2 ) , CHOCOLATE( 2 ) , LAVENDER( 4 )
// Member fields.
private int price ;
// Constructor.
public Flavor ( int price ) {
this.price = price ;
}
// Getters.
public int getPrice() { return this.price ; }
}
用法:
int extendedCost = quantity * Flavor.VANILLA.getPrice() ;
https://stackoverflow.com/questions/70908412
复制相似问题