That was a nice idea, but you don't want to change the value when you do
toString(). Otherwise, if you subsequently add a new element, you're
hosed because you've already added on the suffix.
Jim
On 04/17/2013 09:20 PM, Roger Riggs wrote:
Hi,
Can I suggest that the StringJoiner.toString() method explicitly
append the suffix
to the existing StringBuilder.
152 return (value != null ? value.toString() + suffix :
emptyValue);
Currently it will go to the trouble of creating a String from the
builder and then
transparently create another StringBuilder to do the concatenation.
152 return (value != null ? value.append(suffix).toString() :
emptyValue);
or something similar.
The overhead of StringJoiner supporting prefix and suffix is lower
than doing it separately
in terms of object allocations and garbage and all places that would
need write their
own code to do the concatenation.
Roger
On 4/17/13 5:49 PM, Jim Gish wrote:
Here's an update:
http://cr.openjdk.java.net/~jgish/Bugs-5015163-7172553/
<http://cr.openjdk.java.net/%7Ejgish/Bugs-5015163-7172553/>
Jim
On 04/17/2013 03:15 PM, Mike Duigou wrote:
String::
line 1253: This should use {@code } rather than <code></code>. I
think regular spaces are OK as well. seems inappropriate.
lines 2425/2467: elements may not be null either.
I can tell you (or maybe it's just me) are itching to change :
for (CharSequence cs: elements) {
2477 joiner.add(cs);
2478 }
to:
elements.forEach(joiner::add);
StringJoiner::
- <blockquote> isn't needed around <pre> as it's already a <div> you
probably mean to do
<pre> {@code
...
}</pre>
for code samples.
- It would be nice if the empty output generation in three arg
constructor could be suppressed unless needed. Perhaps a special
(not null please!) sentinel value?
- Four arg constructor doesn't include emptyOutput in @throws NPE
On Apr 11 2013, at 15:33 , Jim Gish wrote:
Please review
http://cr.openjdk.java.net/~jgish/Bugs-5015163-7175206-7172553/
<http://cr.openjdk.java.net/%7Ejgish/Bugs-5015163-7175206-7172553/>
These are changes that we made in lambda that we're now bringing
into JDK8.
I've made a couple of additions - making StringJoiner final and
adding a couple of constructors to set the emptyOutput chars.
Thanks,
Jim
--
Jim Gish | Consulting Member of Technical Staff | +1.781.442.0304
Oracle Java Platform Group | Core Libraries Team
35 Network Drive
Burlington, MA 01803
jim.g...@oracle.com
--
Jim Gish | Consulting Member of Technical Staff | +1.781.442.0304
Oracle Java Platform Group | Core Libraries Team
35 Network Drive
Burlington, MA 01803
jim.g...@oracle.com