簡體   English   中英

如何在Java Spring Boot應用程序中合並兩個對象?

[英]How to merge two objects in Java Spring Boot application?

我需要在Java Spring Boot應用程序(ProductDTO和Product)中合並對象。

ProductDTO並不包含Product中的所有字段,我只想映射兩個對象中相同的字段,同時保留目標對象中的其他值。

我來自C#世界,所以我不知道在Java中實現相同行為的最佳方法是什么。 在C#中,我會這樣做:

    var project = new Project
    {
        Name = "Project 1",
        Description = "Description"
    };

    var projectDto = new ProjectDTO
    {
        Name = "Project 1 (changed)"
    };

    Mapper.Map(projectDto, project);

執行Map方法后,項目對象仍包含Description字段的原始值。

在Java Spring中執行此操作的最佳方法是什么?

Spring bean庫中有一個BeanUtils類。

BeanUtils.copyProperties(source, target);

只要您的類包含相同的屬性名稱,就會在目標中調用適當的setter。 它將忽略目標中不存在的任何屬性。

對於您的情況,可以使用Apache或Spring bean utils來完成。

org.apache.commons.beanutils.BeanUtils.copyProperties(Object destination, Object source)
org.springframework.beans.BeanUtils.copyProperties(Object source, Object dest)

兩種情況下參數的位置都不同。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM