in
でこれを動作させる方法はありません。私は考えることができる最高のカスタムメソッドを書くことで、代わりにそのようにすることを実行している:実際に
boolean isIn(List domain, String target) {
domain.find { target ==~ it }
}
List myList = ["abc", "xyz", ~/a.+z/]
assert (isIn(myList, "abc")) == true
assert (isIn(myList, "xyz")) == true
assert (isIn(myList, "abz")) == true
assert (isIn(myList, "aby")) == false
、これは可能ですが、あなた自身のList
クラスを記述するか必要があります:
class MyList extends ArrayList {
boolean isCase(Object o) {
find { o ==~ it }
}
}
def myList = new MyList()
myList.addAll(["abc", "xyz", ~/a.+z/])
assert ("abc" in myList) == true
assert ("xyz" in myList) == true
assert ("abz" in myList) == true
assert ("aby" in myList) == false
それとも、あなたのリストのインスタンスのメタクラスにisCase
メソッドを上書き:
def myList = ["abc", "xyz", ~/a.+z/]
myList.metaClass.isCase = { o ->
(delegate.find { o ==~ it }) as boolean
}
// asserts as before
へ悪い考えた通り。とにかくありがとう。 –
@ T.Dabrowski申し訳ありませんが、私は途方もなく負だった;-) –
@ T.Dabrowski btw、[前の質問に対するepidemianの回答](http://stackoverflow.com/a/8927935/6509)が正しい場合は、 [それを受け入れる](http://meta.stackexchange.com/a/5235/156393) –