亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將 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 關注
  • 309 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號