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

Reply via email to