gpt4 book ai didi

java - 在引用中存储接受参数的构造函数

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:52:37 24 4
gpt4 key购买 nike

我有课

public class Person {
private int age;
}

并且在 java 8 中使用 Supplier ,我可以像这样存储构造函数引用

Supplier<Person> personSupplier = Person::new

但是如果我的构造函数接受参数 age 会怎么样

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);

但是年龄肯定是因人而异,所以不能解决我的问题。

也许我应该使用其他东西而不是 Supplier

最佳答案

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

例如

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);

关于java - 在引用中存储接受参数的构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30534338/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com