2017-12-08 28 views
0

ModelMapperを使用してあるオブジェクト型を別のオブジェクト型にマップしようとしています。 私はPropertyMapの実装に次のマッピングを定義している:ModelMapper:列挙型のnull値を処理する方法

map().getExtended().setIncludeMaskType(MaskType.fromValue(source.getExtendedPollingType().getMaskSettings().getIncludeMask().getMaskType())); 

問題は先の型がMaskType列挙

を受け入れつつ、私はMaskType.fromValue()にを使用していますソースタイプのメソッド呼び出しsource.getExtendedPollingType().getMaskSettings().getIncludeMask().getMaskType() 返す文字列ということですStringをenumに変換します。 問題は、値がCaused by: java.lang.IllegalArgumentExceptionで失敗するということです。これは、ソースメソッド呼び出しは基本的に設定中にnullを返すためです。

このユースケースはどのように処理する必要がありますか?

答えて

0

OKこれを行うには正しい方法は、コンバータを使用しているようだ:

using((MappingContext<String, MaskType> context) -> { 
    return MaskType.fromValue(context.getSource()); 
}). 
map(source.getExtendedPollingType().getMaskSettings().getIncludeMask().getMaskType()).getExtended().setIncludeMaskType(null); 

これは、ここでより詳細に説明されています https://github.com/modelmapper/modelmapper/issues/20

関連する問題