是否有其他方法可以做到這一點?
的方式適合你更多,你的數據庫或hibernate like in this question使用默認值:
如果你不想數據庫默認值,而僅僅是在Java代碼中的默認值 ,只是初始化這樣
您的變量將清除代碼,使邏輯更清晰:
private Integer myColumn = 100;
無論如何,讓您解答:)
哪個更好?
取決於應用程序的需求。
如果獲得該領域的邏輯具有很高的計算成本,你可以使用隱藏字段來保存這個計算成本,但只要你對這些數據進行了編碼,這似乎不是你的問題。
硬編碼從來是大專院校的編程之外的選擇,但如果更新的字段可以改變這個固定值,最好的選擇是再次生成這個字段更新之前。
UPDATE:
我也想避免硬編碼值。隱藏領域安全只是關心。雖然在我目前的情況下,安全不是一個大問題,我可以按照第二個選項。
然後是的,第二種選擇對你更好。
要澄清,即這將是硬編碼:
int prize = 100;
但如果你問的形式獎,你有一個像一個恆定場:當您更新
// CONSTANT
private final Integer VAT = 18;
// ATTRIBUTE (filled by user in form)
int prize;
實體,您可以重新計算每次,例如獎金(未經測試,請小心使用floating point error dividing)
// calculated field/attribute
double finalPrize = prize * VAT/100;
這就是使用常量,而不是硬編碼和常量是我們的朋友;)
UPDATE:安全
但我很好奇,想知道如果我必須保持這些值的安全
關於安全有很多種方法,很簡單嗎?在服務器端保持不可更新的值將完成這項工作,如果它們在客戶端是必要的,您可以加倍驗證它們(javascript
/hibernate
),並且(如有必要)加密以隱藏內容。
感謝您的回覆 – Anuja
高興地幫助,請不要猶豫,問你是否需要澄清或更多信息 –
感謝您的答覆,但值不固定我不能使用默認值。我也想避免硬編碼值。隱藏領域安全只是關心。儘管在我目前的情況下,安全並不是一個大問題,我可以按照第二個選項。但我很想知道如果我必須保持這些值的安全。 – Anuja