次のような a と b の 2 つのプロパティを含むソース オブジェクトがあるとします。
public class Source {
String a, b;
}
および 1 つのプロパティ c を持つターゲット オブジェクト:
public class Target {
String c;
}
次のようなマッピングを定義したいと思います。
- a が null でない場合、プロパティ a を c にマップします
- b が null でない場合、プロパティ b を c にマップします
mapNulls を false に設定したマッパーで可能だと思いました。
factory.registerClassMap(factory.classMap(Source.class, Target.class).field("a", "c").field("b", "c").mapNulls(false));
ただし、プロパティ a を null 以外の値に設定し、プロパティ b を null のままにすると、マッピングの結果、c が null に設定されたターゲット オブジェクトが生成されます。
mapNulls の目的を誤解していますか?