首頁  >  問答  >  主體

java-ee - JAVA非靜態方法無法被引用

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

怪我咯怪我咯2643 天前1152

全部回覆(2)我來回復

  • 扔个三星炸死你

    扔个三星炸死你2017-07-03 11:45:19

    toMap要求的參數是Function keyMapper,那麼你把
    OperationThisMonthVO::getSurgeryDate當做呢?我猜OperationThisMonthVOoperationInfo的子類別而不是父類,所以這樣寫不行。可以改寫成:

    toMap(operationInfo -> ((OperationThisMonthVO) operationInfo).getSurgeryDate(), ...)
    
    試試看。

    回覆
    0
  • 高洛峰

    高洛峰2017-07-03 11:45:19

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

    回覆
    0
  • 取消回覆