java-ee - JAVA Non-static method cannot be referenced
問(wèn)題描述
Non-static method cannot be referenced from a static context
operationInfos.stream().collect(Collectors.toMap(OperationThisMonthVO::getSurgeryDate, Function.identity(), surgeryCountMerge));public static final BinaryOperator<OperationCountVO> surgeryCountMerge = (v1, v2) -> { v1.setSurgeryCount(v1.getSurgeryCount() + v2.getSurgeryCount()); return v1;};
我想對(duì)operationInfos進(jìn)行分組,然后算個(gè)數(shù),但是爆了這個(gè)錯(cuò)。我這個(gè)方法不是靜態(tài)的方法..
問(wèn)題解答
回答1:toMap要求的參數(shù)是Function<? super T,? extends K> keyMapper,那么你把OperationThisMonthVO::getSurgeryDate當(dāng)做Function,是否符合? super T和? extends K呢?我猜測(cè)OperationThisMonthVO是operationInfo的子類(lèi)而不是父類(lèi),所以這樣寫(xiě)不行。可以改寫(xiě)成:
toMap(operationInfo -> ((OperationThisMonthVO) operationInfo).getSurgeryDate(), ...)
試試看。
回答2:簡(jiǎn)單的做法是,先寫(xiě)成標(biāo)準(zhǔn)的 lambda 表達(dá)式,再根據(jù) IDE 的提示來(lái)優(yōu)化。
相關(guān)文章:
1. 我在導(dǎo)入模板資源時(shí)遇到無(wú)法顯示的問(wèn)題,請(qǐng)老師解答下2. macos - 無(wú)法source activate python273. 運(yùn)行python程序時(shí)出現(xiàn)“應(yīng)用程序發(fā)生異常”的內(nèi)存錯(cuò)誤?4. thinkphp6使用驗(yàn)證器 信息如何輸出到前端頁(yè)面5. PHPExcel表格導(dǎo)入數(shù)據(jù)庫(kù)怎么導(dǎo)入6. 預(yù)訂金和尾款分別支付7. javascript - h5微信中怎么禁止橫屏8. python - sqlalchemy更新數(shù)據(jù)報(bào)錯(cuò)9. css - 移動(dòng)端 盒子內(nèi)加overflow-y:scroll后 字體會(huì)變大10. html5 - 前端面試碰到了一個(gè)緩存數(shù)據(jù)的問(wèn)題,來(lái)論壇上請(qǐng)教一下

網(wǎng)公網(wǎng)安備