0

我知道如何向元类添加方法java.util.List

java.util.List.metaClass.average={

       return delegate.sum()/delegate.size();
}

如果我有def myList=[new Person(score:1),new Person(score:2)],我调用新方法如下:

 myList.average(); 

但是,我想这样称呼它:

   myList.average{it.score}

我如何将此方法添加到元类中以称为闭包({}而不是()

4

1 回答 1

1

你应该能够做到:

List.metaClass.average = { Closure c ->
    delegate.sum( c ) / delegate.size()
}
于 2013-11-04T13:07:45.667 回答