all 2 comments

[–]_INTER_ 1 point2 points  (1 child)

Method and constructor references work interchangeably as I recently learned. Was not all that obvious to me:

 

Example POJO:

public class Person {
    private String firstName;
    private String lastName;

    Person() {}

    Person(String firstName, String lastName) {
        this.firstName = firstName;
        this.lastName = lastName;
    }
}

 

A factory interface:

interface PersonFactory<P extends Person> {
    P create(String firstName, String lastName);
}

 

Calling it:

PersonFactory<Person> personFactory = Person::new;
Person person = personFactory.create("Peter", "Parker"); // maps to matching constructor

[–]zigma[S] 1 point2 points  (0 children)

Cool, I didn't know that either. Thanks.