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

start [/forum/topic.php?fid=59&msg=38234501&tid=2129498]: |
0ms |
get settings: |
14ms |
get forum list: |
17ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
53ms |
get topic data: |
18ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
2ms |
| others: | 313ms |
| total: | 493ms |

| 0 / 0 |
