相关疑难解决方法(0)

Modelmapper:当源对象为null时如何应用自定义映射?

让我们假设我上课MySource:

public class MySource {
    public String fieldA;
    public String fieldB;

    public MySource(String A, String B) {
       this.fieldA = A;
       this.fieldB = B;
    }
}
Run Code Online (Sandbox Code Playgroud)

我想把它翻译成对象MyTarget:

public class MyTarget {
    public String fieldA;
    public String fieldB;
}
Run Code Online (Sandbox Code Playgroud)

使用默认的ModelMapper设置我可以通过以下方式实现它:

ModelMapper modelMapper = new ModelMapper();
MySource src = new MySource("A field", "B field");
MyTarget trg = modelMapper.map(src, MyTarget.class); //success! fields are copied
Run Code Online (Sandbox Code Playgroud)

然而,它可能发生,即MySource对象将是null.在这种情况下,MyTarget也将null:

    ModelMapper modelMapper = new ModelMapper();
    MySource src = null; …
Run Code Online (Sandbox Code Playgroud)

java modelmapper

6
推荐指数
1
解决办法
4669
查看次数

如果从Modelmapper中为null,则如何排除整个属性

ModelMapper(http://modelmapper.org/)是否支持排除属性的内容?如果该值为null.

我刚刚找到了PropertyMap.但这对我来说是一个约束.因为我必须描述我想要的特定属性.

像这样.

ModelMapper modelMapper = new ModelMapper();
modelMapper.addMappings(new PropertyMap<TestObject, TestObject>() {
    @Override
    protected void configure() {
        when(Conditions.isNull()).skip().setName(source.getName());
        when(Conditions.isNull()).skip().set...(source.get...());
        when(Conditions.isNull()).skip().set...(source.get...());
        when(Conditions.isNull()).skip().set...(source.get...());
        when(Conditions.isNull()).skip().set...(source.get...());
        when(Conditions.isNull()).skip().set...(source.get...());
    }
});
Run Code Online (Sandbox Code Playgroud)

在我的情况下,我有很多财产和冗长.如果映射属性从它们中为空,如何排除它们.有更舒适的解决方案吗?

谢谢.

java mapper modelmapper

1
推荐指数
1
解决办法
3063
查看次数

标签 统计

java ×2

modelmapper ×2

mapper ×1