gpt4 book ai didi

java - 是否有一种类型可以保存 java 类的所有可能的 setter 引用,而不管所设置的类型如何?

转载 作者:搜寻专家 更新时间:2023-11-01 01:59:28 26 4
gpt4 key购买 nike

假设我们有一个非常简单的类:

public class User {

private Long id;
private String name;

public void setId(Long id) {
this.id = id;
}

public void setName(String name) {
this.name = name;
}

}

我正在做一个简单的 Binder 类来填充用户并希望发出所需属性的信号。

UserBinder binder = new UserBinder(user)
.requires(User::setId)
.requires(User::setName);

以上将表明这两个属性都是必需的。当然,我可以传递值 "id""name" 而不是方法引用。但似乎传递 setter 是非常合适的,因为 setter 需要在 binder 内部调用。

以下效果很好:

public void requires(BiConsumer<User, Long> r) // for User::setId;
public void requires(BiConsumer<User, String> r) // for User::setName;

但以下失败:

public void requires(BiConsumer<User, ?> r)

是否有一种类型可以保存 java 类的所有可能的 setter 引用,而不管所设置的类型如何?

最佳答案

您可以使用以下方式绑定(bind)类型:

<T> void requires(BiConsumer<User, T> r) {
}

此外,如果您只要求这些参数,您可以为必填字段创建自定义构造函数,如下所示:

public User(Long id, String name)

确保对象的实例化必须具有这些属性。

关于java - 是否有一种类型可以保存 java 类的所有可能的 setter 引用,而不管所设置的类型如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54607836/

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