Java 1.1 允許在方法參數列表中使用 final,含義:
param = new Obj() 非法),但可調用對象方法修改內部狀態param++ 非法),只能讀取public class FinalArguments {
void with(final Gizmo g) {
// g = new Gizmo(); // 編譯錯誤
g.spin(); // 合法
}
void without(Gizmo g) {
g = new Gizmo(); // 合法
g.spin();
}
int g(final int i) {
// i++; // 編譯錯誤
return i + 1; // 只能讀取
}
public static void main(String[] args) {
new FinalArguments().without(null);
new FinalArguments().with(null);
}
}
class Gizmo { public void spin() {} }
final,增強代碼可讀性與安全性