作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
您好,我想知道如何对嵌套方法使用方法引用运算符。我需要它来保持代码风格的一致性。
我想转换这样的东西
.filter(a -> a.getB().getC().getD().isE())
像这样的事情
.filter(A::getB::getC::getD::isE)
即使是这样也很好
.filter(_.getB().getC().getD().isE())
我想删除这个
a -> a
最佳答案
您无法在 Java 中执行这些操作。不支持嵌套方法引用语法,而 _
在其他基于 JVM 的语言中可用,例如Groovy 有它
。
除非您可以将流管道重写为:
,否则您将陷入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)
。
关于java - 热衷于将方法引用运算符与嵌套方法一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57275237/
我是一名优秀的程序员,十分优秀!