Groovy добавляет each () и ряд других методов в java.lang.Object. Я не могу понять, как использовать метакласс Groovy для динамической замены each () по умолчанию в классе Java.
Я вижу, как добавить новые методы:
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?