Я начал изучать Groovy и сейчас изучаю функциональность метакласса. Я видел примеры добавления нового метода и удаления всех методов, но ничего об удалении одного метода. Например:
String.metaClass.foo = {delegate.toUpperCase()}
String.metaClass.bar = {delegate.toLowerCase()}
с явными побочными эффектами. Теперь я видел, что вы можете сказать
String.metaClass = null
Чтобы удалить все методы. Я ожидаю, что можно сказать что-то вроде
String.metaClass.foo = null
чтобы удалить String.foo (), но String.bar () останется, однако это утверждение, похоже, не имеет никакого эффекта Есть ли способ сказать, что метод foo () больше не должен определяться без влияния на bar () или другие добавленные методы?