2011-06-03 4 views
10

मैं ग्रोवी 1.7.8 का उपयोग कर रहा हूं।मेटा क्लास। 'स्टेटिक' विधि को प्रतिस्थापित करते समय काम नहीं कर रहा है

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

मेरा परीक्षण:

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

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

मैं पारित नहीं कर सकते हैं अपने परीक्षण के लिए

मैं निम्नलिखित कोड है। मैं क्या गलत कर रहा हूँ पर कोई विचार?

उत्तर

26

बंद लिखकर देखें:

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

आप अगर आप कुछ ओवरराइड करने के लिए कोशिश कर रहे हैं वास्तव में विधि हस्ताक्षर से मेल की जरूरत है।

+1

+1, @ टेड इसे मिला – virtualeyes

संबंधित मुद्दे