首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何仅当输入对象上的相应字段不为空时才在现有对象上设置字段

如何仅当输入对象上的相应字段不为空时才在现有对象上设置字段
EN

Stack Overflow用户
提问于 2021-05-21 20:54:36
回答 1查看 47关注 0票数 0

仅当existing字段不为空时,如何才能将值设置到incoming对象中?在表单提交时,我检查传入的字段是否不为空,然后在数据库保存中更新现有对象。我有太多的字段和每个字段的代码片段。有没有一种很好的方法来只在existing对象上设置更新后的字段?

代码语言:javascript
复制
protected void updateFoo(Foo input, Foo existing) {
    if (input.getEducation() != null) {
        existing.setEducation(input.getEducation());
    }
    ...
}
EN

回答 1

Stack Overflow用户

发布于 2021-05-21 21:18:34

您可以在一个映射中组合所有字段。当出现任何新值时,更新子映射,并将该子映射传输到接收器。

https://www.javatpoint.com/java-map

https://docs.oracle.com/en/java/javase/14/docs/api/java.base/java/util/HashMap.html

https://docs.oracle.com/en/java/javase/14/docs/api/java.base/java/util/SortedMap.html

示例:

your database row

代码语言:javascript
复制
Value: 1  2  3  4  5

您只需在任何数据库行(可能是第0行)中创建一次映射,并将此映射用作接收方的参考卡。

myMap

代码语言:javascript
复制
Key:   A  B  C  D  E
Value: 1  2  3  4  5

您的数据库更改为:

your database row

代码语言:javascript
复制
Value: 1  2  7  4  9

您可以创建子地图。

mySubMap

代码语言:javascript
复制
Key:   C  E
Value: 7  9

您将该子映射传输到接收器并更新接收器。

本文中有一些小的逻辑错误,但我希望您能理解。

PS地图的工作速度比无限的if...else更快,尤其是在大型数据库中

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67637279

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档