|
Снова про дженерики
|
|||
---|---|---|---|
#18+
Всем привет! Почему нет ошибки в реализации metodA в MyClass1? Ведь необходимо указать использование дженерика. Правильно ли реализован metodA в классе MyClass2 или криво? Код: java 1. 2. 3. 4. 5.
Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2019, 17:39 |
|
Снова про дженерики
|
|||
---|---|---|---|
#18+
MolasarВедь необходимо указать использование дженерика. Зачем? Странно, что он на второй класс не ругается, т.к. что может означать конструкция " <V> void" я вообще не представляю. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2019, 18:39 |
|
Снова про дженерики
|
|||
---|---|---|---|
#18+
Я так понимаю, что метод ничего не возвращает. Значит просто void. Imho ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2019, 18:52 |
|
Снова про дженерики
|
|||
---|---|---|---|
#18+
Generic methods это "отдельная песня" в мире генериков. Это generic на уровне метода, а не на уровне классов/интерфейсов. Пример с потолка. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
на самом деле applicationContext.getBean уже использует generic methods, так что тут конечно пример притянут за уши. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2019, 19:14 |
|
Снова про дженерики
|
|||
---|---|---|---|
#18+
vas0пример притянут за уши.да притянут. Давай другой. Приведение типов есть. Вот тут не будет: var obj = findBean(... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2019, 19:26 |
|
Снова про дженерики
|
|||
---|---|---|---|
#18+
PetroNotC Sharp, Я там наделал кучу ошибок, но в целом идея то должна быть понятна. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2019, 19:34 |
|
Снова про дженерики
|
|||
---|---|---|---|
#18+
vas0, Да. Теперь лучше)) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2019, 19:36 |
|
Снова про дженерики
|
|||
---|---|---|---|
#18+
Если во 2-м классе оставляем только один <T> Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
, то получим ошибку: Код: plaintext 1. 2. 3. 4.
Leonid KudryavtsevMolasarВедь необходимо указать использование дженерика. Зачем? Странно, что он на второй класс не ругается, т.к. что может означать конструкция " <V> void" я вообще не представляю. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2019, 09:26 |
|
Снова про дженерики
|
|||
---|---|---|---|
#18+
MolasarЕсли во 2-м классе оставляем только один <T> Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
здесь параметризованый тип <T> у метода "затеняет" параметризованый тип <T> твоего класса. Код: java 1.
здесь лучше написать Код: java 1.
а так как List<T> и List<U> разные типы, то компилятор потребует приведения типов Код: java 1. 2. 3.
либо можно изменить сигнатуру метода (думаю компилятор это должно "успокоить") Код: java 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2019, 09:55 |
|
Снова про дженерики
|
|||
---|---|---|---|
#18+
Как тогда объявлять в интерфейсе такой метод? Код: java 1.
vas0MolasarЕсли во 2-м классе оставляем только один <T> Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
здесь параметризованый тип <T> у метода "затеняет" параметризованый тип <T> твоего класса. Код: java 1.
здесь лучше написать Код: java 1.
а так как List<T> и List<U> разные типы, то компилятор потребует приведения типов Код: java 1. 2. 3.
либо можно изменить сигнатуру метода (думаю компилятор это должно "успокоить") Код: java 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2019, 10:16 |
|
Снова про дженерики
|
|||
---|---|---|---|
#18+
Molasar, В интерфейсе это будет просто генерик метод Код: java 1.
А уже конкретные реализации могут добавлять деталей Код: java 1.
При этом типы лучше не затенять (чтобы не терять понимание). У меня ни разу не было случая чтобы я переопределял generic методы в наследниках, так как они уже и так сами по себе очень "параметризуемые и гибкие". ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2019, 10:32 |
|
|
start [/forum/topic.php?fid=59&msg=39840709&tid=2121190]: |
0ms |
get settings: |
14ms |
get forum list: |
16ms |
check forum access: |
8ms |
check topic access: |
8ms |
track hit: |
406ms |
get topic data: |
14ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
others: | 224ms |
total: | 746ms |
0 / 0 |