StringBuilder str = new StringBuilder("Today");
str.append(" is ").append("a").append(" sunny ").append(" day.");
在上面的java代码中,我了解到我首先创建了一个StringBuilder类型的对象。然后我使用对象引用str来访问StringBuilder类的方法append。在此之后,我松开了轨道。是否在append方法中的str.append(“is”)之后使用了append方法,或者我在这个类中调用了相同的方法?此外,任何人都可以解释上述声明的执行流程。首先执行上述哪种追加方法?
答案 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 ")
方法,依此类推。
所以基本上你是在链接方法,就是这样。