[英]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.