|
1 / 1 / 0
Регистрация: 23.12.2010
Сообщений: 105
|
|||||||||||
Наследование параметризированных методов в интерфейсах(о2)24.10.2014, 03:54. Показов 2847. Ответов 20
Метки нет (Все метки)
Доброго времени суток!
Решил При попытке унаследоваться от обобщённого метода в базовом интерфейсе новым интерфейсом(более конкретным), возникает ошибка в строчке с аннотацией @Override. DAO.java Кликните здесь для просмотра всего текста
AnswerDAO.java (подвид) Кликните здесь для просмотра всего текста
Ошибка в 20 строчке в AnswerDAO.java. Собственно вопрос: можно ли вообще так делать? ![]() И если да, то как?
0
|
|||||||||||
| 24.10.2014, 03:54 | |
|
Ответы с готовыми решениями:
20
Объявление методов в интерфейсах
Наследование классов и переопределение методов из JDK |
|
|
|
| 24.10.2014, 08:51 | |
|
Andrey96, У вас какая-то странная сигнатура метода getById в базовом классе. Наверняка тип возвращаемого значения там должен быть T
Ругается потому что в базовом классе, вы указали что метод имеет один обобщенный параметр-тип, а в наследнике этого параметра нет.
1
|
|
|
1 / 1 / 0
Регистрация: 23.12.2010
Сообщений: 105
|
|||
| 24.10.2014, 19:54 [ТС] | |||
|
2. public interface AnswerDAO extends DAO<AnswersEntity> {...} 3. AnswersEntity является наследником Entity Там всё правильно. Идея заключалась в том, что id в БД может быть разных типов, и базовый интерфейс должен принимать в качестве аргумента обобщённый параметр, а его наследники(в данном случае AnswersEntity) должны указать точный параметр для этого метода. ![]() P.S. м.б. если унаследуется новый тип от этого подвида(AnswersEntity), мы все равно не сможем изменить тип параметра, но это не решает данную проблему. Как-то так.
0
|
|||
|
1 / 1 / 0
Регистрация: 23.12.2010
Сообщений: 105
|
|||
| 24.10.2014, 20:06 [ТС] | |||
0
|
|||
|
|
||||||
| 24.10.2014, 20:27 | ||||||
Сообщение было отмечено Andrey96 как решение
Решение
1
|
||||||
|
1563 / 1041 / 94
Регистрация: 17.04.2009
Сообщений: 2,995
|
||||||
| 24.10.2014, 20:30 | ||||||
0
|
||||||
|
1563 / 1041 / 94
Регистрация: 17.04.2009
Сообщений: 2,995
|
|||||||||||
| 24.10.2014, 20:38 | |||||||||||
|
Хотя бы так:
0
|
|||||||||||
|
1 / 1 / 0
Регистрация: 23.12.2010
Сообщений: 105
|
|
| 24.10.2014, 20:54 [ТС] | |
|
А нельзя ли не обобщать вновь?
Это же никак не решает проблему. Вить я не хочу продолжать данную иерархию с обобщённым методом: зачем мне это, если мне известен тип? Тогда я бы просто не переопределял данный метод в производном от DAO интерфейсе. И хватит офтопить пожалуйста, то, как я буду это реализовывать никому не интересно, и не относится к данному вопросу.
0
|
|
|
|
||
| 24.10.2014, 20:59 | ||
|
0
|
||
|
1563 / 1041 / 94
Регистрация: 17.04.2009
Сообщений: 2,995
|
||
| 24.10.2014, 22:40 | ||
|
0
|
||
|
1 / 1 / 0
Регистрация: 23.12.2010
Сообщений: 105
|
|||||||||||||
| 25.10.2014, 00:18 [ТС] | |||||||||||||
|
И на это никто так и не ответил нормально. Простите, но обобщить метод дальше в AnswersDAO я могу, но мне нужно сделать так, чтобы потомок-реализатор AnswerDAO видел, что ему нужно реализовать именно метод public AnswersEntity getById(int id) throws SQLException; и соответственно для другой сущности: public UsersEntity getById(String login) throws SQLException; (В обоих строчках ошибка, при @Override) Добавлено через 1 час 5 минут Спасибо вам за помощь. Удачи ![]() Итоговый код: DAO.java Кликните здесь для просмотра всего текста
AnswerDAO.java Кликните здесь для просмотра всего текста
Добавлено через 2 минуты Дальше оффтоп: Как вам код?
0
|
|||||||||||||
|
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
|
|
| 25.10.2014, 00:33 | |
|
Так себе решение. Вы изобретаете велосипед.
0
|
|
|
1 / 1 / 0
Регистрация: 23.12.2010
Сообщений: 105
|
||
| 25.10.2014, 02:41 [ТС] | ||
|
Если есть, то подскажите, буду их изучать/использовать, все-таки учусь же ещё. Добавлено через 6 минут Да и не думаю, что есть уже что-то. Максимум - связка Hibernate(то, что использую) + что-то, чего я не знаю вообще(String, Struts, Seam, JUnit, Ehcache).
0
|
||
|
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
|
||||||
| 25.10.2014, 16:36 | ||||||
|
Jpa repositories
http://docs.spring.io/spring-d... ories.html Имеет точно такой же синтаксис что и у вас но предоставляет намного более гибкий и продвинутый механизм
1
|
||||||
|
1 / 1 / 0
Регистрация: 23.12.2010
Сообщений: 105
|
|
| 25.10.2014, 19:26 [ТС] | |
|
Я кажись упомянул Spring выше.
Да, это так, наверное, и эта технология находится 2-3 в стеке технологий/фреймворков по изучению. Для начала хотелось бы рассмотреть Struts, чтобы потом переходить к такому большому фреймворку. Кстати, может посоветуете какую-то "небольшую" литературу по Struts/Spring? А ещё, чтобы сразу с Hibernate это всё было .Был бы очень признателен. А то книжки по Spring, которые я видел, были 700 страниц + по объему.
0
|
|
|
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
|
|
| 25.10.2014, 21:11 | |
|
Книги о программировании устаревают еще до того как выходят. Я бы на вашем месте читал гугл.
0
|
|
|
1 / 1 / 0
Регистрация: 23.12.2010
Сообщений: 105
|
||
| 25.10.2014, 23:51 [ТС] | ||
|
Я писал "литературу", а литература - не только книги. Может статьи какие-то и т.п., кроме официальной документации.
0
|
||
| 25.10.2014, 23:51 | |
|
Помогаю со студенческими работами здесь
20
Сравнение параметризированных типов Наследование методов C++ Наследование методов Наследование и перегрузка методов Наследование. Перекрытие методов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net
REST сервисы временно не работают, только через Web.
Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
|
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|