2011-06-03 6 views
10

Estoy usando Groovy 1.7.8.metaClass.'static 'no funciona al reemplazar el método

Tengo el siguiente código:

public class StaticClass { 
    public static String getStaticString(String string) { 
     return "NOT WORKING" 
    } 
} 

Mi prueba:

void testStaticMethod() { 
    StaticClass.metaClass.'static'.getStaticString = { i -> 
     "WORKING" 
    } 

    assert "WORKING" == StaticClass.getStaticString('test') 
} 

no puedo conseguir mi examen para pasar. ¿Alguna idea sobre lo que estoy haciendo mal?

Respuesta

26

intente escribir el cierre:

StaticClass.metaClass.'static'.getStaticString = { String i -> 
    "WORKING" 
} 

Es necesario que coincidan exactamente la firma del método si está tratando de anular algo.

+1

+1, @ ted lo tiene – virtualeyes

Cuestiones relacionadas