如何将 Modelmapper 转换器重写为 Lambda 表达式(java 1.8)?

3逻辑

我使用ModelMapper 2.1.0并且有一个名为Converter的接口

我正在像这样使用这个转换器(模型映射器):

import org.modelmapper.Converter;

public class MyClass {
    private ModelMaper myMapper = new ModelMapper();      
    Converter<Instant, java.util.Date> myDateConverter;

    @Before 
    public void setup() {
        myDateConverter = new Converter<Instant, java.util.Date>() {

        @Override
        public java.util.Date convert(MappingContext<Instant, java.util.Date> mappingContext) {
                return java.util.Date.from(mappingContext.getSource());
            }
       }
    }

    @Test
    public void fromDto() {
        myMapper.addConverter(myDateConverter);
        ....
        assertThat(domain.getDate()).isEqualTo(dto.getDate())
    }
}

现在我只想像这样用 lambda 重写匿名内部类:

myDateConverter = mappingContext -> java.util.Date.from(mappingContext.getSource());

但是当我测试 (JUnit) 时,转换器返回nulllambda 表达式。

如何将这个匿名内部类重写为一个实际上真正转换的 lambda 表达式?

春寒萧

我认为这个问题是 ModelMapper 无法正确解析 lambda 表达式中的泛型类型。

这是解决方法:

modelMapper.typeMap(Source.class, Destination.class)
  .setConverter(ctx -> new Destination(ctx.getSource));

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章