2012-05-27 67 views
3
StringBuilder str = new StringBuilder("Today"); 
    str.append(" is ").append("a").append(" sunny ").append(" day."); 

在上面的Java代碼,我知道第一I創建的類型的StringBuilder的對象。然後我使用對象引用str來訪問類StringBuilder的方法附加。之後,我鬆了一口氣。該方法是否追加在append方法中的str.append(「is」)之後,還是我在這個類中調用相同的方法?此外,任何人都可以解釋執行上述聲明的流程。上面哪個append方法首先被執行?Java中以下方法調用語句的含義是什麼?

+0

我建議你逐步調試器中的代碼。這將向您顯示執行的流程以及每個點的值。 –

回答

5

str.append(" is ")返回StringBuilder的本身。您正在對方法返回的對象調用方法。這是相同的代碼做

user.getAddress().getStreet().charAt(0); 

除此之外,每個append()方法調用返回相同的對象,它允許鏈接多個方法調用相同的StringBuilder。

+0

非常感謝。我發現你的解釋非常有用。 – rIshab1988

6

append方法的返回值是StringBuilder對象本身。因此,您可以鏈接電話並向字符串添加更多字符。否則,代碼將很難閱讀,因爲你必須不斷地在每一行引用StringBuilder對象。

3

考慮採取看看Builder Pattern(向下滾動實現頁面的末尾)。基本上這個對象總是返回自己,所以你可以鏈接很多命令。

1
StringBuilder str = new StringBuilder("Today"); 
str.append(" is ").append("a").append(" sunny ").append(" day."); 

這裏str.append(" is ")回報StringBuilder對象在其上再次調用append("a") methnod。

str.append(" is ").append("a")再次返回StringBuilder參考並再次調用append(" sunny ")方法等。

所以基本上你是鏈接的方法,就是這樣。

相關問題