Primitive streams and optional
    Brian Goetz 
    brian.goetz at oracle.com
       
    Wed Nov 21 07:08:23 PST 2012
    
    
  
>> Aside:: are we really allowing Foo::new as a "method" reference for a
>> no-arg constructor? If so I think I'd prefer Foo::Foo.
> 
> Isn't the point of the Factory<> interface to not have to do this?  Or did I dream that?
The two are complementary.  Constructor refs are a language feature, that allow you to get method-ref like functionality for constructors.  Factory<T> (now Supplier<T>) is a functional interface that lets you use lambda/method ref of type () -> T in APIs.  The two work together:
Factory<Foo> fooFactory = Foo::new;
If we didn't have constructor refs, you'd have to write () -> new Foo() instead of Foo::new; if we didn't have Supplier it would be harder to represent "find/make me a T" in APIs.
(Other) David's comment was syntactic, that he thought Foo::Foo was a more obvious syntax for constructor refs than is Foo::new.  
    
    
More information about the lambda-libs-spec-observers
mailing list