我刚开始使用 Groovy,虽然最终在 Java 环境中可以使用闭包令人耳目一新,但我在count
按自己的意愿工作时遇到了问题。
假设我有一个Foo
看起来像这样的类:
public class Foo {
private boolean isBar;
public boolean isBar() {
return isBar;
}
public boolean setIsBar(boolean isBar) {
this.isBar = isBar;
}
}
现在假设我有一个List
实例Foo
,并且我想计算为真的Foo
对象的数量。isBar
我期待它看起来像这样:
foos.count { it.isBar() }
或者使用属性表示法,简单地说:
foos.count { it.bar }
但是,这不会返回预期的结果,它只是返回 0。
我尝试用一个简单List
的整数来测试它。要计算 2 的出现次数,我可以这样做:
[1, 2, 2, 3].count(2)
但是我不应该能够使用闭包来执行以下操作吗?
[1, 2, 2, 3].count { it == 2 }
后者似乎也没有返回预期的结果。我所做的研究似乎表明我正在做的事情是正确的,但显然不是。使用它的正确方法是什么?