如何在modelmapper转换器中使用泛型

时间:2016-11-22 23:23:25

标签: java modelmapper

我正在尝试使用%来指定DTO中的简单String字段到Converter - Object的映射,该对象是另一个复杂Object的一部分。问题是,TypedString是几个实现的接口。 如果我使用特定的实现,这样的转换器可以工作,但如果我在运行时使用泛型来定义Type,则不会这样(见下文)。在这种情况下,当我调用TypedString时,未在运行时选择转换器。

这不适合我,因为我必须为每个实现编写转换器。

是否可以使用泛型在运行时定义目标类型?

P.S。:当前转换器通过反射创建一个实例,它可以工作!

感谢。

此代码有效

modelmapper.map()

但如果我将其添加到import org.modelmapper.Converter; import org.modelmapper.ModelMapper; import org.modelmapper.spi.MappingContext; public class MyModelMapper extends ModelMapper { public MyModelMapper() { super(); Converter<?, ?> converter = new Converter<String, ParticularDestType>() { @Override public SupplierId convert(MappingContext<String, ParticularDestType> context) { return (ParticularDestType) TypedStringConverter.createNewInstanceFromValue(context .getSource(), ParticularDestType.class); } }; addConverter(converter); } } @AllArgsConstructor public class ParticularDestType implements TypedString { private String value; } (即MyModelMapper),则无法使用此功能!!!

addConverter(new ModelMapperTypedStringConverter<ParticularDestType>())

0 个答案:

没有答案