以下方法调用语句在Java中意味着什么?

时间:2012-05-27 12:00:56

标签: java string

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

在上面的java代码中,我了解到我首先创建了一个StringBuilder类型的对象。然后我使用对象引用str来访问StringBuilder类的方法append。在此之后,我松开了轨道。是否在append方法中的str.append(“is”)之后使用了append方法,或者我在这个类中调用了相同的方法?此外,任何人都可以解释上述声明的执行流程。首先执行上述哪种追加方法?

4 个答案:

答案 0 :(得分:6)

append方法的返回值是StringBuilder对象本身。因此,您可以将调用链接起来并为字符串添加更多字符。否则,代码将很难读取,因为你必须每行继续引用StringBuilder对象。

答案 1 :(得分:5)

str.append(" is ")返回StringBuilder本身。您正在调用方法返回的对象上的方法。这和做

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

除了代码之外,每个append()方法调用都返回相同的对象,这允许将多个方法调用链接到同一个StringBuilder。

答案 2 :(得分:3)

考虑查看Builder Pattern(向下滚动到页面末尾)。基本上,对象总是返回自身,因此您可以链接许多命令。

答案 3 :(得分: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 ")方法,依此类推。

所以基本上你是在链接方法,就是这样。