Le 23/10/2009 03:53, Joe Darcy a écrit :
Joe Darcy wrote:
Rémi Forax wrote:
Le 14/10/2009 01:32, Joseph D. Darcy a écrit :
Hello.
Following up from threads earlier this year,
http://mail.openjdk.java.net/pipermail/core-libs-dev/2009-February/001061.html
http://mail.openjdk.java.net/pipermail/core-libs-dev/2009-March/001191.html
I'm willing and interested to sponsor getting String.join
functionality into JDK 7.
To address this particular bug, I think there should be new "join"
methods on String as opposed to a general "joiner" class. A more
general class could be added later.
Remi, please point to a current draft of the specification and
implementation for your change.
Kevin, I'm interested in hearing your comments on the API design.
Thanks,
-Joe
Hi Joe,
the webrev is here:
http://cr.openjdk.java.net/~forax/5015163/webrev.00/
There is no specification, i.e no more than the javadoc.
I will dig this evening to find the tests I've used,
they are on another computer at home which is currently shutdown.
As Kevin said String.join is perhaps better as a static method,
see first part of:
http://mail.openjdk.java.net/pipermail/core-libs-dev/2009-February/001065.html
Yes, I'd also lean toward static methods for this functionality.
Following up on this, what is the exact revised proposal?
In java.lang.String:
public static String join(String separator, Iterable<?> objects);
public static String join(String separator, Object[] objects);
public static String join(String separator, Object first, Object...
rest);
with analogous methods in StringBuffer and StringBuilder return that
type, respectively, instead of String?
I don't know. In my opinion, the main problem with join specified using
static methods is that
split is not currently specified as a static method.
Because join is the dual of split, one could find the usage of static
methods weird.
I assume the motivation for having both the Object[] and (Object,
Object...) versions is to avoid unnecessary array creation in the case
of one argument since the single method join(String, Object...) could
also be used.
No.
The problem is that if there is only one method:
public static String join(String separator, Object... objects);
then a call to that method with by example an array of String will raise
a warning.
So this method was split (no pun intended) in two to avoid this warning.
-Joe
Rémi