ModelMapper 转换器 - 不工作

ins*_*man 6 java spring modelmapper

我在我的休息应用程序中使用 ModelMapper。

我必须将列表转换为列表。

这是我的代码:

 Converter<List<UserRole>,List<String>> listConverter = new Converter<List<UserRole>, List<String>>() {
    public List<String> convert(MappingContext<List<UserRole>, List<String>> context) {
        List<String> target = new ArrayList<String>();
        List<UserRole> userRoles = context.getSource();
        for (UserRole userRole : userRoles) {
            target.add(userRole.getRole().getName());
        }
        return target;
    }
};

PropertyMap<User, UserDTO> propertiesForConvertToDto = new PropertyMap<User, UserDTO>() {
    protected void configure() {
        using(listConverter).map(source.getUserRoles()).setRoles(null);
    }
};
Run Code Online (Sandbox Code Playgroud)

当我运行应用程序时,我收到此错误:

    HTTP Status 500 - Request processing failed; nested exception is org.modelmapper.MappingException: ModelMapper mapping errors:

type Exception report

message Request processing failed; nested exception is org.modelmapper.MappingException: ModelMapper mapping errors:

description The server encountered an internal error that prevented it from fulfilling this request.

exception

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.modelmapper.MappingException: ModelMapper mapping errors:

1) Failed to instantiate instance of destination java.util.List. Ensure that java.util.List has a non-private no-argument constructor.
Caused by: java.lang.NoSuchMethodException: java.util.List.<init>()
    at java.lang.Class.getConstructor0(Class.java:3082)
    at java.lang.Class.getDeclaredConstructor(Class.java:2178)
    at org.modelmapper.internal.MappingEngineImpl.instantiate(MappingEngineImpl.java:366)
    at org.modelmapper.internal.MappingEngineImpl.createDestination(MappingEngineImpl.java:382)
Run Code Online (Sandbox Code Playgroud)

你能帮助我吗?我正在尝试解决这个问题五个小时。当我调试时,我知道转换器工作正常。我可能没有正确调用转换器吗?

Rig*_*hto 2

请确保您已经定义了 ModelMapper bean

//Define ModelMapper class in your configuration
    @Bean
    public ModelMapper modelMapper(){
        ModelMapper modelMapper = new ModelMapper();
        modelMapper.addMappings(propertiesForConvertToDto);
        return modelMapper;
    }
Run Code Online (Sandbox Code Playgroud)