4
所以我有下面的類..枚舉或int表示支付頻率
public abstract class Insurance {
private int yearlyPremium;
...
}
,我想表示一個有多久支付保險領域,無論是通過枚舉或INT。
這裏是我的枚舉的想法:
public enum PaymentFrequency {
MONTHLY("Monthly", 12),
QUARTERLY("Quarterly", 4),
SEMIANNUALLY("Semiannually", 2),
ANNUALLY("Annually", 1);
private String name;
private int paymentsPerYear;
PaymentFrequency(String name, int paymentsPerYear) {
this.name = name;
this.paymentsPerYear = paymentsPerYear;
}
public String getName() {
return name;
}
public int getPaymentsPerYear() {
return paymentsPerYear;
}
}
一個額外的優勢,以枚舉的是,我可以用它values
(靜態)和getName
方法來產生下拉菜單爲用戶界面,因此,如果我添加一個新的PaymentFrequency
,我不必改變任何下拉菜單。
這是一個枚舉的工作,還是我在這裏過於複雜?該字段可以用一個簡單的int來表示,但缺點是我不得不檢查它是否是有效的數字,因爲我只想要1和12之間的值(包括兩者),因此12 % n == 0
。
這是enum的大用途;與它一起運行!不過,我會爲getName()方法選擇一個不同的名稱,因爲它與枚舉的內置name()方法非常相似。也許getDisplayName()。或者,如果您想要準備迎接國際市場的那一天,您可以使用枚舉名稱作爲密鑰的一部分,從屬性文件中查找顯示名稱。 – dnault
我會說去爲枚舉。我認爲你的枚舉將處理所有你需要在你的代碼中處理的情況 – Pratik
關於枚舉常量的事情是它們是編譯時常量。理想情況下,您應該使用數據存儲區,除非每次引入新的支付頻率時都要修改,編譯和部署代碼。 – CKing