使用 final 關鍵字修飾一個變量時,是指引用變量不能變,引用變量所指向的對象中的內容
還是可以改變的。例如,對於如下語句:
final StringBuffer a=new StringBuffer("immutable");
執行如下語句將報告編譯期錯誤:
a=new StringBuffer("");
但是,執行如下語句則可以通過編譯:
a.append(" broken!");
有人在定義方法的參數時,可能想采用如下形式來阻止方法內部修改傳進來的參數對象:
public void method(final StringBuffer param){
}
實際上,這是辦不到的,在該方法內部仍然可以增加如下代碼來修改參數對象:
param.append("a");
