gpt4 book ai didi

java - 一种优雅的说法 if not null then use this setter method in Java 6?

转载 作者:行者123 更新时间:2023-11-30 08:50:17 25 4
gpt4 key购买 nike

我正在为工作场所中的一些 json 类数据编写自定义反序列化程序,我必须通过 setter 方法设置许多值,我只想在它们不为 null 时才这样做。

在 Java 中,有没有一种很好的方法可以通过将 setter 函数作为参数传递给另一个方法来实现这一点?

即伪代码:

private void setValue(Func setterMethod, <T> value){
if (value != null){
setterMethod(value);
}
}

最佳答案

如果您的 setter 是返回 void 的正确 setter,则您必须使用 Consumer 而不是 Function。这只能从 Java 8 开始使用。

private <T> void updateValue(Consumer<T> setterMethod, T value) {
if (value != null){
setterMethod.accept(value);
}
}

这对于部分更新很有用。使用示例:

public Person partialUpdate(UUID id, Person update) {
Person original = getPersonById(id);
updateValue(original::setName, update.getName());
updateValue(original::setAge, update.getAge());
updateValue(original::setAddress, update.getAddress());
return original;
}

关于java - 一种优雅的说法 if not null then use this setter method in Java 6?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31032626/

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