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

Java 鏈式調用模式:返回 this 實現方法鏈

     編輯:程式設計綜合問答

代碼解析

public class Test2 {
    private int i = 0;

    public Test2(int i) { this.i = i; }

    // 關鍵:返回當前對象引用 this
    public Test2 increment() { 
        i++; 
        return this; 
    }

    public void print() { 
        System.out.println("i = " + i); 
    }

    public static void main(String[] args) {
        Test2 t = new Test2(100);
        // 鏈式調用:increment() 返回 this,可繼續調用
        t.increment().increment().print(); // 輸出: i = 102
    }
}

核心原理

  • increment() 返回 this (當前對象引用)
  • 調用鏈:t.increment() → 返回 t → .increment() → 返回 t → .print()
  • 等價於:
    Test2 temp1 = t.increment(); // i=101, 返回 t
    Test2 temp2 = temp1.increment(); // i=102, 返回 t
    temp2.print();
    

應用場景

  1. Builder 模式:new StringBuilder().append("a").append("b").toString()
  2. 流式 API:stream.filter().map().collect()
  3. 配置對象:config.setPort(8080).setTimeout(30).build()

設計要點

  • 返回類型聲明為當前類 Test2,而非 void
  • 修改對象狀態後返回 this
  • 不可變對象應返回新實例 (如 String, BigInteger)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved