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进行分组,然后算个数,但是爆了这个错。我这个方法不是静态的方法..
问题解答
回答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 的提示来优化。
相关文章:
1. 如何判断数据库的库和表是否存在?2. python - nginx为什么不能反代图片?3. css - div内部滚动,安卓没有滚动条(非body滚动),有什么办法可以显示吗?4. python - 如何使用jsom.dumps获得完整的json数据?5. python - django里GROUP BY 如何写这样的mysql语句?6. 数据库安全 - 在公网上部署mysql数据库,安全方面需要做到哪些注意事项7. php mysql_query()问题8. python2.7 - 在Eclipse开发Python,怎么去掉控制台输出的其他消息??9. java - sonar测试遇到的问题?10. css - 定位为absolute的父元素中的子元素 如何设置在父元素的下面?
