Вызов метода с шаблоном имени - PullRequest
2 голосов
/ 10 ноября 2011

Мне нужно вызвать некоторые функции, сгенерированные некоторыми библиотеками. Мне нужно будет позвонить fucntion1, function2, ..., function10 по одному. Вместо того, чтобы писать их все в коде, есть ли какой-нибудь умный способ его кодировать?

Ответы [ 2 ]

7 голосов
/ 10 ноября 2011

Вы могли использовать отражение .

Some some = new Some();

for (int i = 1; i <= 10; i++) {
    some.getClass().getMethod("function" + i).invoke(some);
}
1 голос
/ 10 ноября 2011

Вы также можете использовать класс Expression из пакета java.beans

http://download.oracle.com/javase/6/docs/api/index.html?java/beans/package-summary.html

для создания объекта выражения.

Expression(Object target,String methodName,Object[] arguments)

и затем для объекта выраженияВы можете использовать getValue ()

Cheers!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...