因爲我認爲這是一個很好的編程習慣,所以如果它們只能寫入一次,我會將所有的變量(本地或實例)變爲final
。使用try/catch的最終變量賦值
然而,我注意到,當一個變量賦值可以拋出一個異常,你不能說變量決賽:
final int x;
try {
x = Integer.parseInt("someinput");
}
catch(NumberFormatException e) {
x = 42; // Compiler error: The final local variable x may already have been assigned
}
有沒有辦法做到這一點,而不訴諸一個臨時變量? (或者這是不是最終修改器的正確位置?)
我懷疑你可以做這個沒有臨時變量。 – NPE
'final int x = makeX();'絕對。 (try-catch函數) –
令人震驚的是,JDK [仍然沒有'tryParse'](http://stackoverflow.com/questions/1486077/java-good-way-to-encapsulate-integer-parseint) 。 –