Static methods on Stream and friends
Brian Goetz
brian.goetz at oracle.com
Sun Apr 21 11:35:32 PDT 2013
Two things here:
1. Tim may be suggesting to go further and rename "Stream.empty" to
"Stream.of()"?
2. Query about method selection.
Method selection proceeds in three phases (see JLS 7/e 15.12.2):
1. no boxing or unboxing
2. with boxing/unboxing, but no varargs
3. with varargs.
So, Stream.of(T) will be considered before Stream.of(T...) is -- even
for boxed streams like Stream<Integer>. So I believe there is no need
to extend the variable arity signature to of(T, T, T...).
On 4/21/2013 2:30 PM, Tim Peierls wrote:
> On Sun, Apr 21, 2013 at 2:19 PM, Brian Goetz <brian.goetz at oracle.com
> <mailto:brian.goetz at oracle.com>> wrote:
>
> It was suggested on lambda-dev that we should rename singleton to
> simply be an overload of "of":
>
> Stream.of(T)
> Stream.of(T...)
>
> which seems reasonable.
>
>
> Aren't there ambiguity problems with that pair of signatures? I would
> have thought something like this:
>
> Stream.of() // for empty
> Stream.of(T) // for singleton
> Stream.of(T, T, T...) // for two or more
>
> --tim
More information about the lambda-libs-spec-observers
mailing list