#java #syntax
#java #синтаксис
Вопрос:
Мне нужно вызвать некоторые функции, сгенерированные некоторыми библиотеками. Мне нужно будет вызывать fucntion1
, function2
, …, function10
один за другим. Вместо того, чтобы записывать их все в коде, есть ли какой-нибудь умный способ закодировать это?
Ответ №1:
Вы могли бы использовать отражение.
Some some = new Some();
for (int i = 1; i <= 10; i ) {
some.getClass().getMethod("function" i).invoke(some);
}
Комментарии:
1. Будет ли это интерпретироваться во время выполнения?
2. Действительно, так и будет. Смотрите также ссылку на руководство по отражению.
Ответ №2:
Вы также могли бы использовать класс 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)
и затем для объекта expression вы можете использовать GetValue()
Приветствия!