java-ee - JAVA Non-static method cannot be referenced
問題描述
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;};
我想對operationInfos進行分組,然后算個數(shù),但是爆了這個錯。我這個方法不是靜態(tài)的方法..
問題解答
回答1:toMap要求的參數(shù)是Function<? super T,? extends K> keyMapper,那么你把OperationThisMonthVO::getSurgeryDate當做Function,是否符合? super T和? extends K呢?我猜測OperationThisMonthVO是operationInfo的子類而不是父類,所以這樣寫不行。可以改寫成:
toMap(operationInfo -> ((OperationThisMonthVO) operationInfo).getSurgeryDate(), ...)
試試看。
回答2:簡單的做法是,先寫成標準的 lambda 表達式,再根據(jù) IDE 的提示來優(yōu)化。
相關(guān)文章:
1. mysql - 記得以前在哪里看過一個估算時間的網(wǎng)站2. python - 啟動Eric6時報錯:’qscintilla_zh_CN’ could not be loaded3. css3 - 我想要背景長度變化,而文字不移動,要怎么修改呢4. android下css3動畫非常卡,GPU也不差啊5. python - 有什么好的可以收集貨幣基金的資源?6. MySQL中的enum類型有什么優(yōu)點?7. javascript - 關(guān)于<a>元素與<input>元素的JS事件運行問題8. javascript - vue 怎么渲染自定義組件9. javascript - 同步方式寫異步到底指什么?10. css3 - 純css實現(xiàn)點擊特效
