首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在java中将一个对象映射到另一个对象

在 Java 中,要将一个对象映射到另一个对象,通常使用以下几种方法之一:手动定义一个映射方法、使用第三方库例如 Dozer、MapStruct 或 ModelMapper

  1. 手动定义转换方法
代码语言:javascript
复制
public class SourceObject {
    private int id;
    private String name;

    // Getter and Setter methods
}

public class TargetObject {
    private int id;
    private String fullName;

    // Getter and Setter methods
}

public class ObjectMapper {
    public static TargetObject sourceToTarget(SourceObject source) {
        TargetObject target = new TargetObject();
        target.setId(source.getId());
        target.setFullName(source.getName());
        return target;
    }
}

使用手动定义的映射方法示例:

代码语言:javascript
复制
public static void main(String[] args) {
    SourceObject source = new SourceObject();
    source.setId(1);
    source.setName("John Doe");

    TargetObject target = ObjectMapper.sourceToTarget(source);
    System.out.println("ID: " + target.getId() + ", Full Name: " + target.getFullName());
}
  1. 使用第三方库

Dozer: 首先,将 Dozer 依赖添加到项目中。如果使用 Maven,在 pom.xml 文件中添加以下依赖:

代码语言:javascript
复制
<dependency>
  <groupId>com.github.dozermapper</groupId>
  <artifactId>dozer-core</artifactId>
  <version>6.4.1</version>
</dependency>

然后,定义一个映射接口:

代码语言:javascript
复制
import org.dozer.DozerBeanMapper;
import org.dozer.Mapper;

public class DozerExample {
    public static void main(String[] args) {
        SourceObject source = new SourceObject();
        source.setId(1);
        source.setName("John Doe");

        Mapper mapper = DozerBeanMapperSingletonWrapper.getInstance();
        TargetObject target = mapper.map(source, TargetObject.class);

        System.out.println("ID: " + target.getId() + ", Full Name: " + target.getFullName());
    }
}

MapStruct: 首先,将 MapStruct 依赖添加到项目中。如果使用 Maven,在 pom.xml 文件中添加以下依赖:

代码语言:javascript
复制
<dependency>
    <groupId>org.mapstruct</groupId>
    <artifactId>mapstruct</artifactId>
    <version>1.4.2.Final</version>
</dependency>
<dependency>
  <groupId>org.mapstruct</groupId>
  <artifactId>mapstruct-processor</artifactId>
  <version>1.4.2.Final</version>
  <scope>provided</scope>
</dependency>

然后,定义一个映射接口:

代码语言:javascript
复制
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.factory.Mappers;

@Mapper
public interface SourceTargetMapper {
    SourceTargetMapper INSTANCE = Mappers.getMapper(SourceTargetMapper.class);

    @Mapping(source = "name", target = "fullName")
    TargetObject sourceToTarget(SourceObject source);
}

使用 MapStruct 示例:

代码语言:javascript
复制
public class MapStructExample {
    public static void main(String[] args) {
        SourceObject source = new SourceObject();
        source.setId(1);
        source.setName("John Doe");

        TargetObject target = SourceTargetMapper.INSTANCE.sourceToTarget(source);
        System.out.println("ID: " + target.getId() + ", Full Name: " + target.getFullName());
    }
}

这些方法和库能够让你的对象从一个类型映射到另一个类型,从而实现抽象和简化数据处理。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券