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

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

無法在原始類型 void 上調用 forEach((<no type> de) -> {})

無法在原始類型 void 上調用 forEach((<no type> de) -> {})

藍山帝景 2021-12-01 15:07:47
我有一個元素列表,我想在 forEach 元素中創建一個構造函數,但出現錯誤:無法在原始類型 void 上調用 forEach(( de) -> {})List<MatchEventMobileApp> matchEventMobileApp     = new ArrayList<matchEventMobileApp>();matchEventService    .findAllByMatch(“JVT”))        .sort(Comparator.comparing(MatchEvent::getDateReceived))        .forEach(de -> matchEventMobileApp.add(new MatchEventMobileApp(de)));public List<MatchEvent> findAllByMatch(Match match) {        return matchEventRepository.findAllByMatch(match);    }
查看完整描述

2 回答

?
縹緲止盈

TA貢獻2041條經驗 獲得超4個贊

該findAllByMatch方法正在返回一個List<MatchEvent>.


并且該List.sort(someComparator)方法返回void,即它不返回任何內容,因為它就地對列表進行排序。所以你不能將調用鏈接到forEach(someConsumer).


解決您的問題的一種方法是使用 aStream而不是 a List:


List<MatchEventMobileApp> matchEventMobileApp = matchEventService

    .findAllByMatch(SOME_MATCH)

        .stream()

        .sorted(Comparator.comparing(MatchEvent::getDateReceived))

        .map(de -> new MatchEventMobileApp(de)) // or MatchEventMobileApp::new

        .collect(Collectors.toList()); // better collect to a new list instead of

                                       // adding to an existing one within forEach

這樣一來,你現在有工作Stream,其sorted方法返回另一個Stream(已排序的),可以在其上調用終端操作,即collect,forEach,anyMatch等等。


另一種可能性是將列表提取到變量中并使用它:


List<MatchEvent> list = matchEventService.findAllByMatch(SOME_MATCH);


list.sort(Comparator.comparing(MatchEvent::getDateReceived));


list.forEach(de -> matchEventMobileApp.add(new MatchEventMobileApp(de)));


查看完整回答
反對 回復 2021-12-01
?
莫回無

TA貢獻1865條經驗 獲得超7個贊

List<MatchEventMobileApp> matchEventMobileApp 
    = matchEventService
        .findAllByMatch(“JVT”)
        .stream()
        .sorted(Comparator.comparing(MatchEvent::getDateReceived))
        .map(MatchEventMobileApp::new)
        .collect(Collectors.toList());



查看完整回答
反對 回復 2021-12-01
  • 2 回答
  • 0 關注
  • 142 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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