Stephen Colebourne wrote:
Not wishing to confuse the debate, but perhaps the correct place for
this is a static Strings class, that parallels Objects.

We all know that there are lots of possible methods for such a class,
but even if JDK7 had just a few, that would be a good start.

Joe, would you be prepared to sponsor a Strings class, and see join on
there instead of String?

No.

While I believe a "StringUtils" class would have been appropriate early in the platform's life to host more advanced string manipulation facilities, I don't think adding such a class now is the right design.

IMO, the join method, whether it is an instance method or a static one, should live in java.lang.String.

-Joe

Stephen


2009/10/23 Kevin Bourrillion <kev...@google.com>:
FYI,
While I certainly love my "Joiner" baby, and while y'all have blanket
permission to make use of any of our code you want, I think it's entirely
appropriate for the JDK to just hit the 80% case with a static method
directly on String.
(And yes, the fact that split() is an instance method is a false parallel.)


On Fri, Oct 23, 2009 at 8:58 AM, Joe Kearney <joe.kear...@morganstanley.com>
wrote:
Hi,

From the peanut gallery, it seems to me that there is a genuine reason to
leave join as a static method (if we're not going after the
google-collections approach of a Joiner class) in that split acts on one
existing String, whereas join creates one from others. On which object would
you call the join method? The separator? I know this was covered on this
list before, but it still strikes me as looking a little wierd.

",".join("a", "b", "c")
versus
Joiner.on(",").join("a", "b", "c")
Thanks,
Joe

2009/10/23 Mark Reinhold <m...@sun.com>
Date: Fri, 23 Oct 2009 10:10:35 +0200
From: Rémi Forax <fo...@univ-mlv.fr>
Le 23/10/2009 03:53, Joe Darcy a écrit :
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 agree.  The join methods should be instance methods, not static
methods.

- Mark

--
Kevin Bourrillion @ Google
internal:  http://go/javalibraries
external: guava-libraries.googlecode.com



Reply via email to