加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-14 16:25:21 所属栏目:Java 来源:网络整理
导读:我上课了 public class Person { private int age;} 在java 8中使用Supplier,我可以存储构造函数引用 SupplierPerson personSupplier = Person::new 但是,如果我的构造函数接受参数年龄如此 public class Person { private int age; public Person(int age)
我上课了
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);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读