
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
01.07.2014, 03:35
|
|||
|---|---|---|---|
Рефлекшен - вызвать метод по имени с переменным числом аргументом. |
|||
|
#18+
Есть "операция" Код: java 1. 2. 3. 4. 5. 6. Как ее выполнить? Чтобы найти метод в классе нужно задать все аргументы Код: java 1. Но их может быть разное число или не быть вовсе - как это можно сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.07.2014, 03:37
|
|||
|---|---|---|---|
Рефлекшен - вызвать метод по имени с переменным числом аргументом. |
|||
|
#18+
Нужно реализовать что-то вроде Код: java 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.07.2014, 03:45
|
|||
|---|---|---|---|
Рефлекшен - вызвать метод по имени с переменным числом аргументом. |
|||
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.07.2014, 05:03
|
|||
|---|---|---|---|
Рефлекшен - вызвать метод по имени с переменным числом аргументом. |
|||
|
#18+
Вобщем сделал чтобы все это заработало Код: java 1. 2. 3. 4. 5. 6. 7. Но, это работает не всегда, например если мы хотим вызвать такой метод метод: Код: java 1. 2. 3. То это работать не будет - он почему-то пытается развернуть последний массив и выкидывает ексепшен пытаясь найти несуществуюший метод Код: java 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.07.2014, 05:14
|
|||
|---|---|---|---|
Рефлекшен - вызвать метод по имени с переменным числом аргументом. |
|||
|
#18+
private Код: java 1. Так работает: Код: java 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.07.2014, 05:27
|
|||
|---|---|---|---|
Рефлекшен - вызвать метод по имени с переменным числом аргументом. |
|||
|
#18+
Можно переопределить метод так: Код: java 1. и можно будет вызывать методы таким образом: Код: java 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.07.2014, 05:36
|
|||
|---|---|---|---|
Рефлекшен - вызвать метод по имени с переменным числом аргументом. |
|||
|
#18+
Спасибо, как оказалось - проблема была в другом, сам рефлекшен работает нормально. Поменяю вопрос: нужно сделать метод который может принимать все что угодно. public void add(Object... arguments) {} Но, если мы вызываем его с массивом - как определить что там был массив? add("A", "B") {} add(["A", "B"]) {} в обоих случаях arguments будет ["A", "B"]. А мне нужно чтобы сигнатура сохранялась - и во втором случае было [["A", "B"]] потому-что иначе потом не удается найти нужный метод через рефлекшен. Это как-то можно решить? Определить универсальный метод который может принимать чтоугодно и не терять сигнатуры? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.07.2014, 05:59
|
|||
|---|---|---|---|
Рефлекшен - вызвать метод по имени с переменным числом аргументом. |
|||
|
#18+
privateне удается найти нужный метод через рефлекшен. Это как-то можно решить? Код: java 1. перебираем методы с одинаковыми именами, которые без переменных аргументов (т.е. с условием ! isVarArgs()). И только после этого искать методы с vararg-аргументами. А вообще именно для этого случая лучше добавить еще один call-метод: Код: java 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=59&tablet=1&tid=2126968]: |
0ms |
get settings: |
10ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
77ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
41ms |
get tp. blocked users: |
2ms |
| others: | 250ms |
| total: | 420ms |

| 0 / 0 |
