为什么StringBuffer和StringBuilder追加方法会丢弃超级调用返回的值

Boz*_*zho 3 java

这是一个出于好奇的问题.今天我看了看的实现StringBuilderStringBuffer.这是append()方法:

public StringBuilder append(String str) {
    super.append(str);
    return this;
}
Run Code Online (Sandbox Code Playgroud)

AbstractStringBuilder.append(str)也回来了this.丢弃返回值(in StringBuilder.append(..))并this再次返回是否有任何好处,而不是将super调用的返回值强制转换为当前的具体实现.

Ada*_*kin 7

我的第一个想法是铸造可能是昂贵的,所以如果可以避免这是最好的.

  • 与大多数其他东西相比,它并不昂贵,但如果它可以(很容易)避免在*非常常用的API方法中,那么这显然是一件好事. (2认同)