| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > Вызов неизвестных методов (eval) |
| Автор: MatrixMaster 24.10.2003, 17:10 |
| дано: имена пакетов, классов, методов. Надо: подключить данные классы данных пакетов, и вызвать (выполнить) данный метод. Как это сделать.. eval'а - то нет |
| Автор: Sun 24.10.2003, 17:41 |
| А нельзя ли поподробней? Насколько я понял, нужно организовать выполнение методов классов на лету, указав имя класса и имя метода? Если так, то существует класс java.lang.Class, который может вернуть экземпляр класса указав имя класса и пакет. Есть также возможность извлечь метод (invoke) нужного класса. Этот механизм чем-то похож на работу с Dll. При помощи Classloader загружается класс, вызывается конструктор а затем извлекаются и запускаются методы. |
| Автор: DarkDS 25.10.2003, 13:47 | ||
Если пакет и классы уже есть класспасе, то делается все просто:
|
| Автор: MatrixMaster 25.10.2003, 17:35 |
| Sun ага. верно ты понял. DarkDS спасибо! |
| Автор: MatrixMaster 26.10.2003, 19:20 | ||||
| вот вопросец возник в ходе реализации. как определить нужный нам метод, ежели мы знаем его имя, но не знаем в какой последовательности требуется задавать список параметров. поясню. что бы использовать метод getMethod нужно знать
равно как и
в принципе список можно получить используя getParameterTypes() класса Method, но ведь у нас ЕЩЕ нет объекта типа Method, что бы вызвать этот getParameterTypes().. |
| Автор: DarkDS 27.10.2003, 10:04 |
| Можно получить список всех методов у класса и проверять их имена... .getMethods(). возращает Method[] Но... Тут может возникнуть проблемма с заполнением параметров.. |
| Автор: MatrixMaster 27.10.2003, 10:51 |
| DarkDS жаль. я думал что есть более красивый метод, чем тот, что я реализовал ... |