java - 使用嵌套方法的方法引用运算符很热门?
问题描述
嗨,我想知道如何将方法引用运算符用于嵌套方法。我需要这个来保持代码风格的一致。
我想转换这样的东西
.filter(a -> a.getB().getC().getD().isE())
像这样
.filter(A::getB::getC::getD::isE)
即使是这样的事情也可以
.filter(_.getB().getC().getD().isE())
我想删除这个
a -> a
解决方案
你不能在 Java 中做任何这些。不支持嵌套方法引用语法,但_
在其他基于 JVM 的语言中可用,例如 Groovy 有it
.
a -> a
除非您可以将流管道重写为:
.map(A::getB)
.map(B::getC)
.map(C::getD)
.filter(D::isE)
但是在上面你有一个流D
而不是A
。
A
您还可以通过添加新方法来修改类
public boolean hasE() {
return getB().getC().getD().isE();
}
这让你做filter(A::hasE)
。
推荐阅读
- python - 打印两个数据帧之间共有的特定行
- java - 为什么spring boot类中会采用“advice”这个词,比如ControllerAdvice?
- django - 如何在 DRF 中使用 django-filter
- cmake - find_package(Backtrace) 行为异常
- java - 我在 Java 中没有得到正确的数量(使用 HashMap)
- github - 使用 PyGithub 列出 Github 中开发分支的工作流运行
- r - 根据跨多列拆分的时间值重复行 - R
- cmake - CMake 生成器表达式,但在配置时评估
- docker - 无法在 dockerfile 中为 redis 指定 CMD 中的配置文件
- php - 在 PHP v 5.6 中,我如何捕获 UnexpectedValueException?