Solo estoy jugando con la programación de metaclase en Groovy. Pero de repente que estaba frente a un pequeño problema, que yo no podía conseguir trabajo ...Agregar método a metaclass
Aquí está el script sencillo:
// define simple closure
def printValueClosure = {
println "The value is: '$delegate'"
}
String.metaClass.printValueClosure = printValueClosure
// works fine
'variable A'.printValueClosure()
// define as method
def printValueMethod(String s){
println "The value is: '$s'"
}
// how to do this!?
String.metaClass.printValueMethod = this.&printValueMethod(delegate)
'variable B'.printValueMethod()
¿Es posible utilizar el método, pero puse el primer parámetro de la llamada ¿objeto? usar delegado parece no funcionar ... La asignación de métodos que no hacen referencia a la persona que llama no es un problema. ¿Funciona el currificado aquí?
Gracias, Ingo
Agradable. Gracias. Nunca pensé en eso ... ¿Existe también una forma conveniente de agregar mucho método estático de ayuda a una clase (no por categoría). Por ejemplo Apache Commons IO FileUtils a la clase de archivo? – Ingo
ah ... tu edición también responde a mi pregunta adicional. Gracias de nuevo. – Ingo