
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
21.04.2013, 18:11:55
|
|||
|---|---|---|---|
|
|||
Вопрос по generic - Как узнать какой тип у generic параметра |
|||
|
#18+
Всем доброго времени суток Итак оговорюсь сразу – я .NET программист. Но в последнее время приходится очень часто сталкиваться с java. Так что прошу сильно не пинать ногами если вопрос покажется глупым. Итак есть класс Код: java 1. 2. 3. 4. 5. 6. Мне необходимо узнать какой тип у T К сожалению погуглив не нашел вразумительного ответа на этот вопрос. Можно ли сделать что то подобное тому как это делается в c# Код: c# 1. Заранее благодарен за совет С уважением YK13 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.04.2013, 18:28:06
|
|||
|---|---|---|---|
Вопрос по generic - Как узнать какой тип у generic параметра |
|||
|
#18+
YK13, Пример: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.04.2013, 20:14:18
|
|||
|---|---|---|---|
|
|||
Вопрос по generic - Как узнать какой тип у generic параметра |
|||
|
#18+
Спасибо за совет, К сожалению такой способ мне не подходит, так как используется конструктор с параметром. Мне нужно в завистмости от того какой класс имеет T вызывать соответствующий метод. Можно ли так сделать. Или в java generic классы ВСЕГДА используют конструктор с параметром? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.04.2013, 20:23:57
|
|||
|---|---|---|---|
Вопрос по generic - Как узнать какой тип у generic параметра |
|||
|
#18+
YK13, Скорее всего так: Код: java 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.04.2013, 20:41:11
|
|||
|---|---|---|---|
|
|||
Вопрос по generic - Как узнать какой тип у generic параметра |
|||
|
#18+
Да нет мне нужно что то типа такого Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. но как мне в этом случае инициализировать ct? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.04.2013, 20:41:29
|
|||
|---|---|---|---|
|
|||
Вопрос по generic - Как узнать какой тип у generic параметра |
|||
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.04.2013, 20:48:26
|
|||
|---|---|---|---|
Вопрос по generic - Как узнать какой тип у generic параметра |
|||
|
#18+
YK13, Вместо класса добавьте параметризированный метод: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.04.2013, 20:54:08
|
|||
|---|---|---|---|
Вопрос по generic - Как узнать какой тип у generic параметра |
|||
|
#18+
YK13но как мне в этом случае инициализировать ct? Явно вызвав конструктор (возможно с параметрами) при помощи отражения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.04.2013, 20:56:36
|
|||
|---|---|---|---|
Вопрос по generic - Как узнать какой тип у generic параметра |
|||
|
#18+
UsmanYK13но как мне в этом случае инициализировать ct? Явно вызвав конструктор (возможно с параметрами) при помощи отражения. 14118502 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.04.2013, 21:14:37
|
|||
|---|---|---|---|
Вопрос по generic - Как узнать какой тип у generic параметра |
|||
|
#18+
YK13Или в java generic классы ВСЕГДА используют конструктор с параметром?В Java определить тип generic'а в рантайме не получится, все делается на этапе компиляции. Поэтому нужно явно задавать параметр с нужным типом (классом), либо инициализировать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.04.2013, 21:56:48
|
|||
|---|---|---|---|
|
|||
Вопрос по generic - Как узнать какой тип у generic параметра |
|||
|
#18+
сделал как здесь Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. в методе getGenericParameterClass выбрасывается исключение ClassCastException ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.04.2013, 22:43:40
|
|||
|---|---|---|---|
Вопрос по generic - Как узнать какой тип у generic параметра |
|||
|
#18+
YK13 Код: java 1. 2. 3. Здесь написано, что работает только для подклассов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.04.2013, 23:39:16
|
|||
|---|---|---|---|
|
|||
Вопрос по generic - Как узнать какой тип у generic параметра |
|||
|
#18+
UsmanВ Java определить тип generic'а в рантайме не получится, все делается на этапе компиляции. Поэтому нужно явно задавать параметр с нужным типом (классом), либо инициализировать. Тоесть в данном случае не имеет смысла использования generics - достаточно просто конструктор с параметром типа Class. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Я правильно понял? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.04.2013, 23:45:26
|
|||
|---|---|---|---|
|
|||
Вопрос по generic - Как узнать какой тип у generic параметра |
|||
|
#18+
YK13Тоесть в данном случае не имеет смысла использования generics Ну разве только для того чтобы ограничить возможные варианты параметров классами, наследующими какой то базовый тип ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.04.2013, 04:31:57
|
|||
|---|---|---|---|
Вопрос по generic - Как узнать какой тип у generic параметра |
|||
|
#18+
YK13Тоесть в данном случае не имеет смысла использования generics Имеет смысл, достаточно указать переменную generic-типа ( 14210440 ), либо Class-тип ( 14210472 ). В данном случае - проблема в инициализации переменной Class<T> ct - по-умолчанию она равна null . В момент сравнения выбросит исключение. А нельзя ли реализовать какой-нибудь общий интерфейс для всех классов, которые будут подсовываться в качестве generic-типа? Если так - необходимость в generic'ах отпадет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.04.2013, 07:23:13
|
|||
|---|---|---|---|
|
|||
Вопрос по generic - Как узнать какой тип у generic параметра |
|||
|
#18+
Usman, может до того как давать советы стОит спросить автора: YK13Спасибо за совет, К сожалению такой способ мне не подходит, так как используется конструктор с параметром. Мне нужно в завистмости от того какой класс имеет T вызывать соответствующий метод. Можно ли так сделать. Или в java generic классы ВСЕГДА используют конструктор с параметром?А зачем все это? В конечном-то итоге? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.04.2013, 10:22:35
|
|||
|---|---|---|---|
Вопрос по generic - Как узнать какой тип у generic параметра |
|||
|
#18+
YK13, https://code.google.com/p/guava-libraries/wiki/ReflectionExplained#TypeToken - вот интересная штука есть может подойдет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.04.2013, 16:20:36
|
|||
|---|---|---|---|
Вопрос по generic - Как узнать какой тип у generic параметра |
|||
|
#18+
YK13, никак. Только у суперкласса. А зачем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=59&tablet=1&tid=2129498]: |
0ms |
get settings: |
19ms |
get forum list: |
25ms |
check forum access: |
7ms |
check topic access: |
7ms |
track hit: |
53ms |
get topic data: |
20ms |
get forum data: |
5ms |
get page messages: |
80ms |
get tp. blocked users: |
2ms |
| others: | 326ms |
| total: | 544ms |

| 0 / 0 |
