首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ModelMapper配置

ModelMapper配置
EN

Stack Overflow用户
提问于 2015-12-18 15:34:49
回答 1查看 1.4K关注 0票数 2

我看到的行为,我无法解释与ModelMapper,同时试图映射一个布尔到字符。

(我已经检查过了,问题与隆布克无关)。

代码语言:javascript
复制
@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’,正如我所想的那样。

项目(instance=t) 项目(instance=f)

有人知道ModelMapper配置应该是什么样子吗?

EN

回答 1

Stack Overflow用户

发布于 2016-07-28 07:08:12

我认为您需要创建一个转换器来将布尔值映射为字符,如下所示:

代码语言:javascript
复制
Converter<boolean, char> toChar = new AbstractConverter<boolean, char>() {
  protected char convert(boolean source) {
    return source ? 'Y' : 'N;
  }
}; 

然后,您的ProperyMap应该使用这个转换器来映射它,如下所示:

代码语言:javascript
复制
    @Before
    public void before()
    {
        modelMapper.addMappings(new PropertyMap<Entity, Item>()
        {
            protected void configure()
            {
                using(toChar).map().setIsInstance(source.isInstance());
            }
        });
    }

请看这里:

  • ModelMapper.org -转换器
  • 属性映射的Java代码示例(带有转换器的示例)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34359029

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档