当前位置: 首页 > 知识库问答 >
问题:

合并包含相同ID的两个对象,并返回一个具有属性的对象

李奕
2023-03-14

class Item{
    Integer ID;
    String name;
    Double price;
}


class Item discount{
    Integer Id;
    Double discount
}

我有这两个类,它们都有一个项目列表,我试图返回一个新对象“ItemWithDiscount”,它具有这两个类的属性,这在服务/控制器申请中。我尝试用流映射它们,但没能做到。谁能给我一个简单的方法来做这件事吗?

共有1个答案

班安平
2023-03-14

嗯,我不知道你说的“用流映射它们”是什么意思。。。

您需要有某种组合对象,可以存储所有相关属性。在纯对象模型设计中,我首先想到的是复合模式,类似于:

class ItemWithDiscount {
  public Item;
  public Discount;
}

尽管您可能需要考虑不变性等。例如,如果您要将其序列化为JSON,则可能更容易将其实现为一个类,该类以平面形式包含子对象的所有字段:

class ItemWithDiscount {
  public Integer itemId;
  public String name;
  public Integer price;
  public Integer discount;
}

现在你可以创建一个构造函数来进行展平。第二种设计在某些方面有点笨拙,但在大多数情况下都可以。

现在,您可能会使用流语法来构建这些组合等。

 类似资料:
  • 我有一个这样的对象数组: 我希望每个人(名字)都有一个对象,并添加他们的对象。 因此,最终阵列将是: 我使用的真正数组非常大,这就是为什么我正在寻找最有效的方法。

  • 本文向大家介绍写一个方法js将数组对象中某个属性值相同的对象合并成一个新对象相关面试题,主要包含被问及写一个方法js将数组对象中某个属性值相同的对象合并成一个新对象时的应答技巧和注意事项,需要的朋友参考一下 function Dog(name,age){ this.name=name; this.age=age; };

  • 问题内容: 我需要能够在运行时合并两个(非常简单的)JavaScript对象。例如,我想: 有没有人为此提供脚本或知道内置的方式来执行此操作?我不需要递归,也不需要合并函数,只需合并平面对象上的方法即可。 问题答案: ECMAScript 2018标准方法 您将使用对象传播: 现在是和的并集。中的属性将覆盖中的属性。 这也是此语法的MDN文档。如果您正在使用babel,则需要babel-plugi

  • 假设我们有一个这样定义的对象A: 出于某种原因,我需要创建第二个对象B,它只具有对象A的前两个属性: 所以我的问题是:将对象A复制到对象B的最佳方法是什么?我一直在逐个复制获取者和设置者的属性,但有些事情告诉我一定有更好的方法来做到这一点!特别是当对象将具有很多属性时,我必须编写一行又一行的代码,只是为了将它们全部复制到第二个对象B... 多谢了:) 编辑:我一直被一个“另一个问题的可能重复”提醒

  • 问题内容: 我有以下输入-2个json文件,一个是基础文件,第二个包含相同的属性,但值不同,我想合并这些对象。 例如: 第二个文件: 结果应该是这样的: 使用powershell可以做到吗? 问题答案: (请参见下面的更新) 结果: 您可能会考虑不覆盖左值: 在这种情况下,结果将是: 更新2019年11月16日 的参数已经被耗尽,分过和参数(遗憾的重大更改)。好消息是,对象合并的默认参数设置包含在

  • 我有一个通过Morphia库连接到MongoDB数据库的java应用程序。我存储在数据库中的POJO具有名为_id的字符串字段,并使用@id注释(com.google.code.morphia.annotations.id;)进行注释。 正如所见,这两个条目具有相同的_ID,但具有不同的表示形式。一个将其作为对象,另一个作为字符串。通常我应该只有一个条目,不是吗?