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. dockerfile - [docker build image失敗- npm install]2. angular.js - angularjs如何傳遞id給另一個(gè)視圖 根據(jù)id獲取json數(shù)據(jù)?3. docker gitlab 如何git clone?4. Span標(biāo)簽5. mysql - 記得以前在哪里看過(guò)一個(gè)估算時(shí)間的網(wǎng)站6. docker images顯示的鏡像過(guò)多,狗眼被亮瞎了,怎么辦?7. mysql刪除一個(gè)空數(shù)據(jù)庫(kù)報(bào)錯(cuò)Table storage engine for ’proc’ doe8. docker start -a dockername 老是卡住,什么情況?9. 數(shù)據(jù)庫(kù)無(wú)法進(jìn)入10. 在windows下安裝docker Toolbox 啟動(dòng)Docker Quickstart Terminal 失敗!
