您的位置:首頁技術文章
文章詳情頁

java-ee - JAVA Non-static method cannot be referenced

瀏覽:126日期:2023-10-19 15:56:49

問題描述

Non-static method cannot be referenced from a static contextjava-ee - JAVA Non-static method cannot be referenced

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進行分組,然后算個數,但是爆了這個錯。我這個方法不是靜態的方法..

問題解答

回答1:

toMap要求的參數是Function<? super T,? extends K> keyMapper,那么你把OperationThisMonthVO::getSurgeryDate當做Function,是否符合? super T和? extends K呢?我猜測OperationThisMonthVO是operationInfo的子類而不是父類,所以這樣寫不行。可以改寫成:

toMap(operationInfo -> ((OperationThisMonthVO) operationInfo).getSurgeryDate(), ...)

試試看。

回答2:

簡單的做法是,先寫成標準的 lambda 表達式,再根據 IDE 的提示來優化。

標簽: java
相關文章:
国产综合久久一区二区三区