首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MapStruct - MapperImpl未找到

MapStruct - MapperImpl未找到
EN

Stack Overflow用户
提问于 2019-11-28 09:55:50
回答 1查看 1.1K关注 0票数 0

我在一个普通的OSGi包中使用Mapstruct。我添加了一些基本代码:

代码语言:javascript
复制
package com.XXX.XXX.test;

import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.factory.Mappers;

import java.util.Map;

@Mapper
public interface AccountPreferencesMapper {
    AccountPreferencesMapper MAPPER = Mappers.getMapper(AccountPreferencesMapper.class);

    @Mapping(expression = "java((String) r.get(\"defaultName\"))", target = "name")
    MappedAccountPreferences toMappedAccountPreferences(Map<String, Object> r);
}

代码语言:javascript
复制
package com.XXX.XXX.test;

public class MappedAccountPreferences {
    public String name;
}

当我构建包时,它将在以下内容中生成实现:

target/generated-sources/annotations/AccountPreferencesMapperImpl.java

问题是,当我打电话给AccountPreferencesMapper.MAPPER时,我无法得到它。它会说它是,或者我得到:无法初始化类

我在同一个包中有以下代码:

代码语言:javascript
复制
Map accountPreferencesMap = new HashMap<String, Object>();
accountPreferencesMap.put("defaultName", "User Name");
MappedAccountPreferences dto = AccountPreferencesMapper.MAPPER.toMappedAccountPreferences( accountPreferencesMap );

请注意,我必须使用以下方法编译代码:mvn干净安装mvn内容包:install(我不使用任何编译编辑器)

我尝试在POM中添加mapstruct 8/mapstruct处理器作为单独的依赖项,在其他堆栈溢出mapstruct类似的问题中解释了这一点,但是它不能工作。

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2020-11-10 16:02:39

在AccountPreferencesMapper接口中,不需要使用MAPPER

代码语言:javascript
复制
@Mapper
public interface AccountPreferencesMapper {

    @Mapping(expression = "java((String) r.get(\"defaultName\"))", target = "name")
    MappedAccountPreferences toMappedAccountPreferences(Map<String, Object> r);
}

之后,在您的服务中,您可以像这样使用映射器:

代码语言:javascript
复制
        Map accountPreferencesMap = new HashMap<String, Object>();
        accountPreferencesMap.put("defaultName", "User Name");
        MappedAccountPreferences mappedAccountPreferences = accountPreferencesMapper.toMappedAccountPreferences(accountPreferencesMap);

如果使用

  • ,则需要在类测试中添加:

@SpringBootTest( class = {AccountPreferencesMapperImpl.class})公共类TestClass{ }

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59086067

复制
相关文章

相似问题

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