java – 存储接受引用参数的构造函数

前端之家收集整理的这篇文章主要介绍了java – 存储接受引用参数的构造函数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我上课了
public class Person {
    private int age;
}

在java 8中使用Supplier,我可以存储构造函数引用

Supplier<Person> personSupplier = Person::new

但是,如果我的构造函数接受参数年龄如此

public class Person {
    private int age;
    public Person(int age) {this.age = age;}
}

现在

Supplier<Person> personSupplier = Person::new

不起作用,那么personSupplier的签名应该是什么?显然我可以做点什么.

Supplier<Person> personSupplier = () -> new Person(10);

但是每个人的年龄必须不同,所以它不能解决我的问题.

可能我应该使用其他东西而不是供应商?

解决方法

您可以在Java中使用java.util.function.Function并在调用apply时提供年龄.

例如.

Function<Integer,Person> personSupplier = Person::new;
Person p1 = personSupplier.apply(10);
Person p2 = personSupplier.apply(20);

这相当于

Function<Integer,Person> personSupplier = (age) -> new Person(age);
    Person p1 = personSupplier.apply(10);
    Person p2 = personSupplier.apply(20);
原文链接:https://www.f2er.com/java/125451.html

猜你在找的Java相关文章