|
Динамический вызов метода....
|
|||
---|---|---|---|
#18+
Привет. Нужно след: вызвать метод извесного класа, если имя метода передается переменной на этапе выполения... Отражениями воспользоваться не могу, т.к. список аргументов метода то же получаю динамически... Есть идеи ? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2003, 09:53 |
|
Динамический вызов метода....
|
|||
---|---|---|---|
#18+
Так обсуждали же уже( см ниже) через reflection ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2003, 10:13 |
|
Динамический вызов метода....
|
|||
---|---|---|---|
#18+
Поясняю )) Я (точнее она, прога) получаю строку, ИмяКласса,ИмяМетода,Парам1,Парам2,Парам3...ПарамN в время выполнения. И до того, как я это строку получил, я не знаю имени метода, типа и кол-ва параметров. Я не понимаю как в этом случае можно создать масивы Class[] parameterTypes и Object[] args. Хрен с типам... я готов передать все аргументы как Стринги, но НЕПОЛУЧАЕТСЯ динамически проинициализировать эти масивы, поличив кол-во аргументов... Есть Идеи ? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2003, 10:43 |
|
Динамический вызов метода....
|
|||
---|---|---|---|
#18+
А в чем проблема? Получаешь массив классов методом Method.getParamTypes(), далее приводиш String к нужному типу параметра. Все очень просто ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2003, 12:32 |
|
Динамический вызов метода....
|
|||
---|---|---|---|
#18+
Методы перегруженые. Ну это - ладно... Приведите пример, плиз... Суть то в том, что нужно сначала создать масив типа Класс с классами аргументов ... а потом создать массив аргументов со значениями ... чего то я не очень понимаю как создать первый массив, если кол-во аргументов извесно... и они не все стринг... ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2003, 13:57 |
|
Динамический вызов метода....
|
|||
---|---|---|---|
#18+
getMethods() - получить все методы и по названию метода и колличеству параметров догадаться что это он и есть ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2003, 15:56 |
|
Динамический вызов метода....
|
|||
---|---|---|---|
#18+
Аналогичная проблема была. Для решения пришлось стандартизировато все интерфейсы методов, которые вызвваются через reflection. Для этого - 1) был создан класс - вроде контейнера 2) все интерфейсы к методам создавались как бины с геттерами и сеттерами и наследовались от общего контейнера 3) методы передавали\принимали контейнер как общий класс а затем растаскивали параметры из своего конкретного конкретного интерфейса геттерами (сам метод знает чего он хочет) 4) для стандартизации возврата использовался XML, который пердавался как string а каждый конечный приемник знал как его надо отобразить на конкретные переменные. т.е. это больше вопросы проектирования приложения к целом. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2003, 07:41 |
|
|
start [/forum/topic.php?fid=59&fpage=861&tid=2154633]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
26ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 135ms |
0 / 0 |