考慮以下的調整。用戶可以輸入諸如30D,90D,180D,360D,1M,3M,6M,12M,1Y (D =日,M =月,Y =年)之類的東西。「利用」java調用值是明智的
我想用以下兩種方法計算月數。
private int getLengthOfPeriodInMonths(Integer lengthOfPeriod, String unitOfPeriod) {
int periodInMonths = lengthOfPeriod;
if ("D".equals(unitOfPeriod)) {
periodInMonths = lengthOfPeriod/30;
} else if ("Y".equals(unitOfPeriod)) {
periodInMonths = lengthOfPeriod * 12;
}
return periodInMonths;
}
private int getLengthOfPeriodInMonths(Integer lengthOfPeriod, String unitOfPeriod) {
if ("D".equals(unitOfPeriod)) {
lengthOfPeriod = lengthOfPeriod/30;
} else if ("Y".equals(unitOfPeriod)) {
lengthOfPeriod = lengthOfPeriod * 12;
}
return lengthOfPeriod;
}
由於Java的可與呼叫按值與作爲值傳遞一個參考lengthOfPeriod
不會外部改變的方法的。我不確定什麼更適合使用。
我知道這種方法可以通過使用enum Periods
或類似的東西來重構。但我們不要在此討論這一點。
你能解釋一下什麼是應該發生在這裏? – SomeJavaGuy
做哪一個讓你的代碼更清晰。對我來說,他們都很好。 – khelwood
我認爲可能有一個一般問題:程序員可能會改變第二種方法中的lengthOfPeriod(通過setter),這可能會改變此方法之外的代碼。 – Chris311