Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用Dozer将字符串数组映射到POJO中_Java_Pojo_Dozer - Fatal编程技术网

Java 使用Dozer将字符串数组映射到POJO中

Java 使用Dozer将字符串数组映射到POJO中,java,pojo,dozer,Java,Pojo,Dozer,我试图使用Dozer将列表转换为列表,但无法使用mapper将索引值映射到属性字段 如何将字符串[]的成员映射到各个对象字段,而每个索引都指向特定字段?e、 g.[0]->名称和[1]->角色 和用户类 它在以下配置下运行良好 DozerBeanMapper mapper = new DozerBeanMapper(); BeanMappingBuilder builder = new BeanMappingBuilder() { @Override protected void

我试图使用Dozer将列表转换为列表,但无法使用mapper将索引值映射到属性字段

如何将字符串[]的成员映射到各个对象字段,而每个索引都指向特定字段?e、 g.[0]->名称和[1]->角色

和用户类


它在以下配置下运行良好

DozerBeanMapper mapper = new DozerBeanMapper();
BeanMappingBuilder builder = new BeanMappingBuilder() {
    @Override
    protected void configure() {
        mapping(String[].class, User.class)
                .fields(this_(), "name", FieldsMappingOptions.customConverterId("arrToName"))
                .fields(this_(), "role", FieldsMappingOptions.customConverterId("arrToRole"));
    }
};
final Map<String, CustomConverter> customConverterMap = new HashMap<>();
customConverterMap.put("arrToName", new ArrToNameConverter());
customConverterMap.put("arrToRole", new ArrToRoleConverter());
mapper.setCustomConvertersWithId(customConverterMap);
mapper.addMapping(builder);
和arrtorolaconverter


它在以下配置下运行良好

DozerBeanMapper mapper = new DozerBeanMapper();
BeanMappingBuilder builder = new BeanMappingBuilder() {
    @Override
    protected void configure() {
        mapping(String[].class, User.class)
                .fields(this_(), "name", FieldsMappingOptions.customConverterId("arrToName"))
                .fields(this_(), "role", FieldsMappingOptions.customConverterId("arrToRole"));
    }
};
final Map<String, CustomConverter> customConverterMap = new HashMap<>();
customConverterMap.put("arrToName", new ArrToNameConverter());
customConverterMap.put("arrToRole", new ArrToRoleConverter());
mapper.setCustomConvertersWithId(customConverterMap);
mapper.addMapping(builder);
和arrtorolaconverter


答案非常适合你的问题!你能把你的反馈给我吗?谢谢答案非常适合你的问题!你能把你的反馈给我吗?谢谢
class User {
    String name;
    String role;

    // getter & setter
}
DozerBeanMapper mapper = new DozerBeanMapper();
BeanMappingBuilder builder = new BeanMappingBuilder() {
    @Override
    protected void configure() {
        mapping(String[].class, User.class)
                .fields(this_(), "name", FieldsMappingOptions.customConverterId("arrToName"))
                .fields(this_(), "role", FieldsMappingOptions.customConverterId("arrToRole"));
    }
};
final Map<String, CustomConverter> customConverterMap = new HashMap<>();
customConverterMap.put("arrToName", new ArrToNameConverter());
customConverterMap.put("arrToRole", new ArrToRoleConverter());
mapper.setCustomConvertersWithId(customConverterMap);
mapper.addMapping(builder);
public class ArrToNameConverter extends DozerConverter<String[], String> {

    public ArrToNameConverter() {
        super(String[].class, String.class);
    }

    @Override
    public String convertTo(String[] strings, String user) {
        return strings[0];
    }

    @Override
    public String[] convertFrom(String user, String[] strings) {
        return new String[0];
    }
} 
public class ArrToRoleConverter extends DozerConverter<String[], String> {

    public ArrToRoleConverter() {
        super(String[].class, String.class);
    }

    @Override
    public String convertTo(String[] strings, String user) {
        return strings[1];
    }

    @Override
    public String[] convertFrom(String user, String[] strings) {
        return new String[0];
    }
} 
[User(name=Jill, role=SDE), User(name=Jack, role=PM)]