2017-04-11 8 views
2

MapStructマッパーでブール値にマップする必要がある自動生成列挙があります。彼らはこのように行く:enumをmapstructでブール値にマップするにはどうすればよいですか?

enum YN { 
    Y("Y"), N("N") 
} 

enum ZO { 
    _0("0"), _1("1") 
} 

I)は、(@ValueMappingsを使用しようとしたが、それはうまくいきませんでした:

@ValueMappings({ 
    @ValueMapping(source="Y", target="true), 
    @ValueMapping(source="N", target="false) 
) 
Boolean map(YN value); 

私はこのマッピングをimplementeできますか?

答えて

4

ValueMappingsは、2つのEnumの間のマッピングに使用されます。 Enumを別のものにマップするためにそれらを使用することはできません。定義されたマッピングのためには、自分でマッピングを作成する必要があります。その後、MapStructは他のマッパーでそのマップを使用できます。

abstract class Mapper { 
    Boolean map(YN value) { 
     return YN.Y.equals(value); 
    } 

    Boolean map(ZO value) { 
     return ZO.O.equals(value); 
    } 
} 
+0

ありがとうございます!それは私が予想していたよりも実際に簡単でした。 – lpacheco

関連する問題