Groovy を使い始めたばかりで、Java 環境でクロージャを使用count
できるようになったことは新鮮ですが、思い通りに作業するには問題があります。
Foo
次のようなクラスがあるとします。
public class Foo {
private boolean isBar;
public boolean isBar() {
return isBar;
}
public boolean setIsBar(boolean isBar) {
this.isBar = isBar;
}
}
List
ここで、 ofインスタンスがあり、が trueであるオブジェクトFoo
の数を数えたいとしましょう。私はそれが次のようになることを期待していました:Foo
isBar
foos.count { it.isBar() }
または、プロパティ表記を使用すると、次のようになります。
foos.count { it.bar }
ただし、これは期待される結果を返さず、0 を返すだけです。
List
これを単純なintでテストしてみました。2 の出現をカウントするには、次のようにします。
[1, 2, 2, 3].count(2)
しかし、クロージャーを使用して次のことができるはずではありませんか?
[1, 2, 2, 3].count { it == 2 }
後者も期待される結果を返していないようです。私が行った調査は、私のしていることは正しいことを示しているようですが、明らかにそうではありません。これを使用する正しい方法は何ですか?