ModelMapper
在尝试将布尔值映射到字符时,我看到了我无法解释的行为。
(我已经检查过了,问题与龙目岛无关)。
@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());
}
}
这会产生字符 't' 和 'f' 而不是我想要的 'Y' 和 'N'。
项目(实例=t)
项目(实例=f)
任何人都知道ModelMapper
配置应该如何看?