Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.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 将spring服务列表转换为另一个实体作为响应_Java_Spring_Spring Mvc_Arraylist - Fatal编程技术网

Java 将spring服务列表转换为另一个实体作为响应

Java 将spring服务列表转换为另一个实体作为响应,java,spring,spring-mvc,arraylist,Java,Spring,Spring Mvc,Arraylist,我有一个用户服务 entityDTO = (EntityDto) userService.getAllUsersOfCompany(companyId); 它将返回UserDTO的列表 在此列表中,实体有许多字段,如(用户ID、名称、地址、地点等) 但是我只想要userId和name 为此,我创建了一个EntityDto public class EntityDto { private String Id; private String name; public S

我有一个用户服务

entityDTO = (EntityDto) userService.getAllUsersOfCompany(companyId);
它将返回
UserDTO的列表

在此列表中,实体有许多字段,如(用户ID、名称、地址、地点等)

但是我只想要
userId
name

为此,我创建了一个
EntityDto

public class EntityDto {

    private String Id;
    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getId() {
        return Id;
    }

    public void setId(String id) {
        Id = id;
    }

}
现在我需要将
List
映射到
List


推土机映射是否可能?

如果您使用的是JAVA8或+,您可以像这样使用流:

List<EntityDto> users = new ArrayList<>();
userService.getAllUsersOfCompany(companyId).stream().forEach(
entity -> {
   users.add(new EntityDto(entity.getId(), entity.getName()))
});
List users=new ArrayList();
userService.getAllUsersOfCompany(companyId).stream().forEach(
实体->{
添加(新的EntityDto(entity.getId(),entity.getName())
});

如果您使用的是JAVA8或+,您可以像这样使用流:

List<EntityDto> users = new ArrayList<>();
userService.getAllUsersOfCompany(companyId).stream().forEach(
entity -> {
   users.add(new EntityDto(entity.getId(), entity.getName()))
});
List users=new ArrayList();
userService.getAllUsersOfCompany(companyId).stream().forEach(
实体->{
添加(新的EntityDto(entity.getId(),entity.getName())
});

对于Java 8,请遵循@TouzeneMohamedWassim mentiened 但是对于<8的java,api中没有流和映射

因此,您应该使用传统的循环方法(如创建循环抛出列表并返回新实体的方法),如下所示:

private static List<EntityDto> convertEntityDto(List<UserDTO> users) {

    List<EntityDto> newList = new ArrayList<>();

    for (UserDTO usr : users) {

        EntityDto entity = new EntityDto();
        entity.setId(usr.getId());
        entity.setName(usr.getName());

        newList.add(entity);
    }

    return newList;
}
私有静态列表转换器(列表用户){
List newList=newarraylist();
for(UserDTO-usr:users){
EntityDto实体=新的EntityDto();
setId(usr.getId());
entity.setName(usr.getName());
newList.add(实体);
}
返回newList;
}
然后调用您的方法:

List<EntityDto> listEntityDTO  = 
    convertEntityDto(serService.getAllUsersOfCompany(companyId));
List listEntityDTO=
转换为(serService.getAllUsersOfCompany(companyId));

对于Java 8,请遵循@TouzeneMohamedWassim mentiened 但是对于<8的java,api中没有流和映射

因此,您应该使用传统的循环方法(如创建循环抛出列表并返回新实体的方法),如下所示:

private static List<EntityDto> convertEntityDto(List<UserDTO> users) {

    List<EntityDto> newList = new ArrayList<>();

    for (UserDTO usr : users) {

        EntityDto entity = new EntityDto();
        entity.setId(usr.getId());
        entity.setName(usr.getName());

        newList.add(entity);
    }

    return newList;
}
私有静态列表转换器(列表用户){
List newList=newarraylist();
for(UserDTO-usr:users){
EntityDto实体=新的EntityDto();
setId(usr.getId());
entity.setName(usr.getName());
newList.add(实体);
}
返回newList;
}
然后调用您的方法:

List<EntityDto> listEntityDTO  = 
    convertEntityDto(serService.getAllUsersOfCompany(companyId));
List listEntityDTO=
转换为(serService.getAllUsersOfCompany(companyId));

立即执行:迭代列表并使用实体的字段来创建UserDTO对象或使用映射库(为什么不使用Spring中的哪一个,因为您已经在使用它)是的,有了dozer mapping,这是可能的。你能帮我吗?现在就做:迭代列表并使用实体的字段来创建UserDTO对象或使用映射库(为什么不使用Spring的哪一个,因为你已经在使用它)是的,使用dozer Mapping是可能的。你能帮我吗?你能告诉我如何使用java 7吗?是的,最好使用java 8流api。或者更好的
List users=userService.getAllUsersOfCompany(companyId.stream().map(entity->new EntityDto(entity.getId(),entity.getName())。collect(collector.toList())你能告诉我在java 7中怎么做吗?是的,最好使用java 8流api。或者更好的
列表用户=userService.getAllUsersOfCompany(companyId).stream().map(entity->newentityDTO(entity.getId(),entity.getName()).collect(Collectors.toList())