groovy removeAll闭包不删除列表中的元素

cri*_*ken 3 groovy

我不确定如何在groovy中删除allAll,但我希望这会返回[40289454470ea94601470ea977d00018]

def list = ['40289454470ea94601470ea977b20014', '40289454470ea94601470ea977d00018']
def list2 = ['40289454470ea94601470ea977b20014']

list.removeAll {
   list2
}

println list
Run Code Online (Sandbox Code Playgroud)

但它返回[]

请指教:(

tim*_*tes 9

带有Closure的removeAll删除了闭包返回true的每个元素

list2在groovy真理下强制执行,因为它不是空的,所以你的代码会删除所有内容

尝试

list1 -= list2
Run Code Online (Sandbox Code Playgroud)