среда, 26 января 2011 г.

Groovy - легкий вызов метода по его имени

В Java вы не можете вызвать метод динамически по его имени или полной сигнатуре, вам надо лезть в Reflection API, получить Class объекта, получить список его методов, получить объект класса метода (Method), и вызвать на нем methodObject.invoke(params).

В Groovy это чуть проще... Примерно вот так:


public class TestClass{

    public testA(){println "Called A"}
    public testB(){println "Called B"}
    public testC(){println "Called C"}
    public testD(){println "Called D"}
}

def methodName = 'testA'
TestClass test = new TestClass()
test."$methodName"()
Печатает как можно догадаться, Called A.

Комментариев нет:

Отправить комментарий