是否有一种方法可以防止Mapstruct
重写我在映射器类中为其提供了实现的特定方法?
我的映射器类如下所示:
public abstract class EntityMapper {
public static final EntityMapper INSTANCE = Mappers.getMapper(EntityMapper.class);
protected final Vehicle EntityDTOToVehicle(EntityDTO EntityDTO) {
Vehicle vehicle = new Vehicle();
//My Implementation Here
return vehicle;
}
@Mapping(target = "vehicle.property1", source = "vehicleProperty1")
@Mapping(target = "vehicle.property2", source = "vehicleProperty2")
public abstract Entity map(EntityDTO dto);
}
然后,Mapstruct生成如下所示的实现:
@Component
public class EntityMapperImpl extends EntityMapper {
@Override
public Entity map(EntityDTO dto) {
if ( dto == null ) {
return null;
}
Entity entity = new Entity();
.
.
.
entity.setTransport( entityDTOToVehicle( dto ) );
return entity;
}
/**
* This is the method I'd like to prevent mapstruct from overriding */
protected Vehicle entityDTOToVehicle(EntityDTO entityDTO) {
Vehicle vehicle = new Vehicle();
//Mapstruct's Implementation
return vehicle;
}
}
必须在实现中使用@named
。
@Named(value = "mappingName")
protected Vehicle EntityDTOToVehicle(EntityDTO EntityDTO) {
Vehicle vehicle = new Vehicle();
//My Implementation Here
return vehicle;
}
然后将其附加到抽象映射器:
@Mappings(value ={
@Mapping(target = "vehicle.property1", source = "vehicleProperty1")
@Mapping(target = "vehicle.property2", source = "vehicleProperty2")
@Mapping(source = "fieldWithVehiclePropChangeItToYours", target = "transport", qualifiedByName = "mappingName"),
}
public abstract Entity map(EntityDTO dto);
我不明白为什么当我尝试编译这段代码时,编译器会显示错误: 在A和B类中,两种方法之间的区别在于返回类型,我读到Java阻止重写静态方法。所以我希望编译器不会显示任何错误,因为最初没有任何重写!!
我有一个主类。应用程序中有许多子类是从类扩展而来的。base类公开公共方法,如下所示: 应用程序将在子实例上调用以获得一个检查器实例。每个子类都可以有自定义的基本检查器和验证检查器。他们可以使用和方法实现它,但是他们不能覆盖基类的,因为它包含处理逻辑。 在这里使用关键字合适吗?
正如你所看到的,这就是我用MaterialBottomNavigation实现NavHost的方式,我在消息和提要屏幕上都有很多项目,当我在它们两个屏幕之间导航时,它们会自动重构,但我不想这样做,因为那里有很多数据,它在导航时闪烁和fps下降到10以下,我试图在NavHost之前初始化数据viewModels,但结果仍然相同, 有没有办法一次组成屏幕,并在viewModels数据更新时更新它们?
我有一个Mapstruct映射器,在那里我必须做一些字符串转换服务。即,从自然语言短语列表到实用程序类中定义的不透明常量。不,我这次不使用枚举。它涉及一些Levenshtein检查和预定义的单词列表。 我在Spring bean中有一个方法,我想使用它来映射我的DTO中的单个字符串字段。 如果我在映射中使用Mapstruct的uses属性,我发现Mapstruct会滥用definedBean。ge
本文向大家介绍Swift用final关键字来防止重写,包括了Swift用final关键字来防止重写的使用技巧和注意事项,需要的朋友参考一下 final关键字在大多数的编程语言中都存在,表示不允许对其修饰的内容进行继承或者重新操作。Swift中,final关键字可以在class、func和var前修饰。 通常大家都认为使用final可以更好地对代码进行版本控制,发挥更佳的性能,同时使代码更安全。下面
问题内容: 我想创建一个表来存储设备设置。该表具有三行:id,parameter_name和parameter_value。 该表是通过执行以下查询语句创建的: 然后通过执行以下方法存储行: 创建数据库后,将存储默认值: 但是,方法insertRow()的问题在于它无法防止重复输入。 有谁知道在这种情况下如何防止重复输入? 问题答案: 您可以使用列约束。 UNIQUE约束导致在指定列上创建唯一索引