ModelMapper
ブール値を char にマップしようとしているときに、説明できない動作が見られます。
(確認しましたが、問題はLombokに関連していません)。
@Data @NoArgsConstructor @AllArgsConstructor
public class Entity { private boolean instance; }
@Data @NoArgsConstructor @AllArgsConstructor
public class Item { private char instance; }
public final class ModelMapperTest
{
private final ModelMapper modelMapper = new ModelMapper();
@Before
public void before()
{
modelMapper.addMappings(new PropertyMap<Entity, Item>()
{
protected void configure()
{
map().setInstance(source.isInstance() ? 'Y' : 'N');
}
});
}
@Test
public void map()
{
for (final Item item : map(new ArrayList<Entity>()
{
{
this.add(new Entity(true));
this.add(new Entity(false));
}
}))
{
System.out.println(item);
}
}
public List<Item> map(final List<Entity> entities)
{
return modelMapper.map(entities, new TypeToken<List<Item>>(){}.getType());
}
}
これは、意図した「Y」と「N」ではなく、文字「t」と「f」を生成します。
アイテム(インスタンス=t)
アイテム(インスタンス=f)
ModelMapper
構成がどのように見えるか知っている人はいますか?