为了账号安全,请及时绑定邮箱和手机立即绑定

将 List<Object[]> 转换为 List<MyClass>

将 List<Object[]> 转换为 List<MyClass>

收到一只叮咚 2021-12-01 17:18:19
 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); }我正在遍历对象列表并需要返回 listOfDTO。如何将列表转换为列表?
查看完整描述

3 回答

?
翻过高山走不出你

TA贡献1875条经验 获得超3个赞

如果您使用 java 8,则应该尝试使用流 api。


考虑到 DTO 的构造函数有一个String参数。


List<Object[]> listChild = query.list();

List<ChildrenDTO> children = listChild.stream().map(x -> new ChildrenDTO(x[0].toString())).collect(Collectors.toList());



查看完整回答
反对 回复 2021-12-01
?
慕哥6287543

TA贡献1831条经验 获得超10个赞

因此,首先,您要遍历包含对象数组的 List。


因此,要获取每个单独的对象,您需要有一个嵌套循环,例如:


        for (Object[] org : listOrg) {

        for (int i = 0; i < org.length; i++) {

            if (org[i] instanceof ChildrenDTO) {

                listOfDTO.add((ChildrenDTO) org[i]);

            }

        }

    }

我不是 100% 确定您是否可以将对象强制转换为 ChildrenDTO 对象,但如果不能,您可以只获取对象值并创建一个新的 ChildrenDTO 实例,也许是一个构造函数来获取对象值?


查看完整回答
反对 回复 2021-12-01
?
HUH函数

TA贡献1836条经验 获得超4个赞

您可以使用Java 8 流 API

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());


查看完整回答
反对 回复 2021-12-01
  • 3 回答
  • 0 关注
  • 276 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号