[英]Calling methods java
我有一個枚舉,每個枚舉都必須有特定的字段,比如價格,不會被修改,我想創建一個 class 來獲取這些字段,在這種情況下我該怎么辦? 如何使用枚舉調用 class 或者我能做什么?
你可以試試這個:
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;
}
}
現在您可以使用下面的代碼按值檢索枚舉
SalaryHeadMasterEnum.getEnumByString("Basic Pay")
使用下面的代碼將 ENUM 作為字符串
SalaryHeadMasterEnum.BASIC_PAY.name()
使用下面的代碼獲取枚舉的字符串值
SalaryHeadMasterEnum.BASIC_PAY.toString()
枚舉是一種特殊類型的 class,它表示一組 fianl 值。 如果您想獲得該字段,那么您可以創建類似的實例
Price myVar = Price.Low;
System.out.println(myVar);
thakre 的答案是正確的。 我將重申以更直接地解決問題的細節。
每個枚舉都必須有特定的字段,例如價格,
所以用這樣一個字段定義你的枚舉。
enum Flavor {
private BigDecimal price ;
}
將用於該字段的值傳遞給每個枚舉 object 的構造函數。
enum Flavor {
// Enum objects.
VANILLA( 2 ) , CHOCOLATE( 2 ) , LAVENDER( 4 )
// Member fields.
private int price ;
// Constructor.
public Flavor ( int price ) {
this.price = price ;
}
}
我想創建一個 class 來獲取這個字段,在這種情況下我該怎么辦?
不需要另一個 class。 只需在枚舉上添加一個 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() ;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.