首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Java final 參數用法:防止引用變更與基本類型不可變性

     編輯:Java 綜合教學

Java final 參數

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,增強代碼可讀性與安全性
  • 配合靜態分析工具可捕獲意外賦值
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved