Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.programmer > #25361
| From | Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> |
|---|---|
| Newsgroups | comp.lang.java.programmer |
| Subject | Re: StringBuilder.append and CharSequence |
| Date | 2013-09-26 18:01 +0000 |
| Organization | A noiseless patient Spider |
| Message-ID | <slrnl48tkb.mol.avl@gamma.logic.tuwien.ac.at> (permalink) |
| References | <slrnl45s71.mol.avl@gamma.logic.tuwien.ac.at> <52438692$0$292$14726298@news.sunsite.dk> |
Arne Vajhøj <arne@vajhoej.dk> wrote: > On 9/25/2013 10:19 AM, Andreas Leitgeb wrote: >> Is it safe to use "stringBuilder.append(this);" in a CharSequence >> implementation's .toString(), or could this lead to a recursive >> loop, if some version of a Java class library implements the >> append() for CharSequence by using it's toString() ? >> I read the javadoc for StringBuilder/Appendable.append(CharSequence) >> but it isn't clear to me. > > Java docs for StringBuilder says: > <quote> > The principal operations on a StringBuilder are the append and insert > methods, which are overloaded so as to accept data of any type. Each > effectively converts a given datum to a string and then appends or > inserts the characters of that string to the string builder. > </quote> > > Based on the use of "string" and "and then" I interpret this as: > <interpretation> > Append has two distinct sequential phases: > 1) convert the argument to an instance of java.util.String > 2) append that to the StringBuilder > </interpretation> If .append() used .toString(), then there wouldn't be a point for offering a CharSequence overload. It could then just offer one overload for Object (apart from those for primitive types), and be set. So, while the documentation's verbiage is unclear, other facts appear to hint towards a reasonable behaviour that avoids any unnecessary temporary String instance. > And that would mean that: > sb.append(sb); > is a safe and well defined operation. That would work even without the detour to String, as long as StringBuilder captures the initial *length()* of the passed CharSequence (itself), and then only appended that number of chars. StringBuilder's insert() is a much more delicate test case, as the Javadoc for .insert() doesn't seem to take into account, that the given CharSequence might "magically" change during the operation.
Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
StringBuilder.append and CharSequence Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2013-09-25 14:19 +0000
Re: StringBuilder.append and CharSequence markspace <markspace@nospam.nospam> - 2013-09-25 13:02 -0700
Re: StringBuilder.append and CharSequence markspace <markspace@nospam.nospam> - 2013-09-25 18:34 -0700
Re: StringBuilder.append and CharSequence Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2013-09-26 17:37 +0000
Re: StringBuilder.append and CharSequence Daniele Futtorovic <da.futt.news@laposte-dot-net.invalid> - 2013-09-26 23:11 +0200
Re: StringBuilder.append and CharSequence Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2013-09-27 13:30 +0000
Re: StringBuilder.append and CharSequence Daniele Futtorovic <da.futt.news@laposte-dot-net.invalid> - 2013-09-27 19:31 +0200
Re: StringBuilder.append and CharSequence markspace <markspace@nospam.nospam> - 2013-09-27 13:45 -0700
Re: StringBuilder.append and CharSequence Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2013-09-27 23:16 +0000
Re: StringBuilder.append and CharSequence Daniele Futtorovic <da.futt.news@laposte-dot-net.invalid> - 2013-09-29 04:58 +0200
Re: StringBuilder.append and CharSequence Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2013-09-30 20:02 +0000
Re: StringBuilder.append and CharSequence Arne Vajhøj <arne@vajhoej.dk> - 2013-09-25 20:57 -0400
Re: StringBuilder.append and CharSequence Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2013-09-26 18:01 +0000
Re: StringBuilder.append and CharSequence Arne Vajhøj <arne@vajhoej.dk> - 2013-09-26 15:47 -0400
Re: StringBuilder.append and CharSequence Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2013-09-26 20:48 +0000
Re: StringBuilder.append and CharSequence Arne Vajhøj <arne@vajhoej.dk> - 2013-09-26 16:58 -0400
Re: StringBuilder.append and CharSequence Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2013-09-27 12:52 +0000
Re: StringBuilder.append and CharSequence Arne Vajhøj <arne@vajhoej.dk> - 2013-10-04 20:59 -0400
Re: StringBuilder.append and CharSequence Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2013-10-05 12:51 +0000
Re: StringBuilder.append and CharSequence Sven Köhler <remove-sven.koehler@gmail.com> - 2013-09-27 15:41 +0300
csiph-web