使用mapstruct将A对象的id属性映射给B对象的父类C的id属性,Class B extends C
时间: 2023-11-27 12:49:44 浏览: 73
假设A对象的id属性类型为Long,B对象继承自C,那么可以按照以下步骤使用MapStruct实现该映射:
1. 在Maven或Gradle中添加MapStruct依赖,例如:
```xml
<!-- Maven -->
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-jdk8</artifactId>
<version>1.4.2.Final</version>
</dependency>
```
2. 创建Mapper接口,例如:
```java
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
@Mapper
public interface ABMapper {
@Mapping(source = "id", target = "id")
void mapAtoC(A a, C c);
}
```
3. 在B类中添加id属性,并在ABMapper中添加相应的映射方法,例如:
```java
public class B extends C {
private Long id;
// getter and setter for id
}
@Mapper
public interface ABMapper {
@Mapping(source = "id", target = "id")
void mapAtoC(A a, C c);
default void mapAtoB(A a, B b) {
mapAtoC(a, b);
b.setId(a.getId());
}
}
```
这样,调用`mapAtoB`方法即可将A对象的id属性映射给B对象的id属性。
阅读全文