太棒了 adds each()
我可以看到如何添加新方法:
MyJavaClass.metaClass.myNewMethod = { closure -> /* custom logic */ } new MyJavaClass().myNewMethod { item -> println item } // runs custom logic
但在重写方法时,似乎同样的方法不起作用:
MyJavaClass.metaClass.each = { closure -> /* custom logic */ } new MyJavaClass().each { item -> println item } // runs Object.each()
我做错什么了?如何在Groovy中动态重写each()?
MyJavaClass.metaClass.each = { Closure closure -> /* custom logic */ } new MyJavaClass().each { item -> println item } // runs custom logic
通过省略类型,我添加了一个更通用的重载版本each(),它接受一个对象参数,而不是重写现有的each(),它接受一个闭包参数。