Java 转换列表<;对象[]>;列出<;MyClass>; List listChild=query.List(); List ListOfTo=新建ArrayList(); //循环遍历对象的ArrayList 对于(对象[]组织:列表组织){ //如何将对象列表强制转换为ist? listOfDTO.add(org); }
我正在遍历一个对象列表,需要返回ListTo。 如何将列表转换为列表Java 转换列表<;对象[]>;列出<;MyClass>; List listChild=query.List(); List ListOfTo=新建ArrayList(); //循环遍历对象的ArrayList 对于(对象[]组织:列表组织){ //如何将对象列表强制转换为ist? listOfDTO.add(org); },java,Java,我正在遍历一个对象列表,需要返回ListTo。 如何将列表转换为列表 首先,您要遍历一个包含对象数组的列表 因此,要获取每个单独的对象,需要有一个嵌套循环,类似于: List<Object[]> listChild = query.list(); List<ChildrenDTO> listOfDTO = new ArrayList<>(); //Loop through arraylits of object for(Object[] org: l
首先,您要遍历一个包含对象数组的列表 因此,要获取每个单独的对象,需要有一个嵌套循环,类似于:
List<Object[]> listChild = query.list();
List<ChildrenDTO> listOfDTO = new ArrayList<>();
//Loop through arraylits of object
for(Object[] org: listOrg){
//How to cast List of object to ist<ChildrenDTO>?
listOfDTO.add(org);
}
for(对象[]组织:列表组织){
for(int i=0;i
我不能100%确定是否可以将一个对象强制转换为ChildrenDTO对象,但如果不能,您可以获取对象值并创建一个新的ChildrenDTO实例,可能是一个构造函数来获取对象值?首先,您必须编写一个方法,将oneobject[]转换为oneChildrenDTO,例如,构造函数:
for (Object[] org : listOrg) {
for (int i = 0; i < org.length; i++) {
if (org[i] instanceof ChildrenDTO) {
listOfDTO.add((ChildrenDTO) org[i]);
}
}
}
然后,您可以使用以下命令创建这些DTO的列表:
public ChildrenDTO(Object [] objects) {
// Your code here
}
List listOfDTO=listChild.stream()
.map(ChildrenDTO::新建)
.collect(Collectors.toList());
如果您使用java 8,您应该尝试使用流api
考虑到DTO的构造函数有一个String
param
List listChild=query.List();
List children=listChild.stream().map(x->new ChildrenDTO(x[0].toString()).collect(Collectors.toList());
您可以使用Java 8流API:
List listChild=。。。
List childrenDtos=listChild.stream()
.flatMap(数组::流)
.filter(object->Objects.equals(object.getClass(),ChildrenDTO.class))
//.filter(对象->ChildrenDTO的对象实例)
//而不是Objects.equals(类,类),如果需要
.map(对象->(ChildrenDTO)对象)
.collect(Collectors.toList());
您不进行强制转换,而是进行转换,也就是说,您在org
中获取值,并构建ChildrenDTO
的实例。如何实现这一点取决于代码的其余部分,我将把它作为练习留给您。您将无法做到这一点,因为数组对象不可能是非数组类型。我尝试使用dthos代码,但列表返回null,而query.list返回值。
List<ChildrenDTO> listOfDTO = listChild.stream()
.map(ChildrenDTO::new)
.collect(Collectors.toList());
List<Object[]> listChild = ...
List<ChildrenDTO> childrenDtos = listChild.stream()
.flatMap(Arrays::stream)
.filter(object -> Objects.equals(object.getClass(),ChildrenDTO.class))
//.filter(object -> object instanceof ChildrenDTO)
//instead of Objects.equals(class, class), if required
.map(object -> (ChildrenDTO)object)
.collect(Collectors.toList());