【问题标题】:Enrich values of object丰富对象的价值
【发布时间】:2017-08-07 12:08:35
【问题描述】:

假设我有一个名字 = Ronald 和 name = null 的 Person-Object a。

public class Person {
    private String firstName;
    private String name;
}

我需要用另一个对象的值来丰富空值.. 人 b 的名字 = "Matt" 和姓氏 = "Kingley"

所以结果应该是一个名字为 : Ronald 但姓氏为“Kingley”的人

最好的方法是什么? 有什么好的框架吗?

提前致谢

【问题讨论】:

  • 我不太明白你的问题,你能再解释一下吗?if(personA.firstname == null) personA.firstname = personB.firstname; if(personA.name == null) personA.name = personB.name;
  • 是的,但这只是一个简单的例子。我想让它通用,例如,如果您有一个包含 50 个字段的类,您不必为每个字段都使用它。
  • 为什么不从所有受影响字段的初始值开始?
  • 我有同样的问题,正在寻找一个通用的解决方案。就像使用 Map 一样,您循环遍历键并比较对象中每个键的值,取不为空的值。

标签: java frameworks


【解决方案1】:

我只想在处理这个的类中实现一个方法。 但是,这样做的目的还不清楚,您是否要填写名称以防未填写?

如果是这样,只需写入构造函数,该构造函数只接受一个参数,您想将姓氏分配给常量(或其他东西?)

public Person(String firstName){
    this.firstName = firstName;
    this.name = "DefaultName";
}

否则你可以实现一个合并方法(仍然不清楚的问题,所以这可能不是你要找的):

public void mergePersonIfNull(Person person){
    if (this.lastName == null)
        this.lastName = person.getLastName(); //Assuming you have getters
    //same for firstname
}

此外,如果您不使用 null 比较,请将其删除并强制替换。

无论如何,也许你的用法很准确,我会更准确,因为我仍然不确定我是否理解了这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-27
    • 2013-12-28
    • 2016-03-15
    相关资源
    最近更新 更多