Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!feeder.erje.net!eu.feeder.erje.net!newsfeed.fsmpi.rwth-aachen.de!newsfeed1.swip.net!newsfeed2.funet.fi!newsfeeds.funet.fi!feeder1.news.elisa.fi!uutiset.elisa.fi!7564ea0f!not-for-mail From: Jukka Lahtinen Newsgroups: comp.lang.java.programmer Subject: Re: Java blunders Organization: N/A References: <53cef75d$0$291$14726298@news.sunsite.dk> <7s6vs9p395bretqrtdvh9i6til83vfk52p@4ax.com> <53d04b5f$0$291$14726298@news.sunsite.dk> X-no-archive: yes Content-Transfer-Encoding: 8bit Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux) Cancel-Lock: sha1:Cb+0maFnHvYVlRET0Zo/neaGGdU= MIME-Version: 1.0 Content-Type: text/plain Lines: 23 Date: Wed, 30 Jul 2014 12:07:55 +0300 NNTP-Posting-Host: 91.155.88.191 X-Complaints-To: newsmaster@saunalahti.com X-Trace: uutiset.elisa.fi 1406711275 91.155.88.191 (Wed, 30 Jul 2014 12:07:55 EEST) NNTP-Posting-Date: Wed, 30 Jul 2014 12:07:55 EEST Xref: csiph.com comp.lang.java.programmer:29437 Eric Sosman writes: > On 7/28/2014 4:23 PM, Josip Almasi wrote: >> It's about how operator gets interpreted: >> out.println ( new StringBuffer("the answer is ").append(new >> StringBuffer(a + b)).append(new StringBuffer(".")); > Why do you think this is so? javac 1.8.0_11 compiles it to > the equivalent of > out.println(new StringBuilder() > .append("the answer is ") > .append(a + b) > .append(".") > .toString()); You could drop one append call by using another constructor: out.println(newStringBuilder("the answer is ") .append(a + b) .append(".") .toString()); -- Jukka Lahtinen