interface Bridge {
default int getCarsCount(){
return this.getClass().hashCode();
}
}
Кто нибудь может обьяснить к чему здесь реализация дефолтного метода в интерфейсе и причем тут hashCode()? Подсмотрел в обсуждениях, решить решил, но понять пока не получилось.
Илья
22 уровень
Интерфейс Bridge
Обсуждается
Комментарии (8)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Whiskels
5 февраля 2020, 17:36полезный
Вообще изначально в задаче предполагается, что в интерфейсе будет создан пустой метод, который будет перегружен в классах (ему будет задан вывод конкретного числа).
Данное лаконичное решение позволяет просто прописать в интерфейсе метод, который распространяется на классы, которые используют данный интерфейс.
Что по сути делается -
this.getClass() получает класс переданного в метод объекта
.hashCode() - метод для переданного объекта, который генерирует число (если говорить просто)
подробнее про hashCode - статья на хабре
+2
Илья
6 февраля 2020, 16:31
Благодарю
0
Илья
6 февраля 2020, 16:32
по сути можно было без этой конструкции обойтись? или это правильное решение задачи?
0
Whiskels
6 февраля 2020, 16:53
можно и без нее. с ней метод прописывается в интерфейс и не требует перегрузки для успешной валидации, вот и писали, что так проще)
0
Илья
6 февраля 2020, 18:03
хм, странно, что у меня не работало хотя в обоих методах возвращалось число, после того как я прописал эту реализацию всё запустилось и валидация прошла...надо подумать над тем что было не так...
0
Whiskels
6 февраля 2020, 18:07
у меня прошло так
0
Илья
8 февраля 2020, 15:34
странно, я сделал точно так же, но почему то пока не реализовал по дефолту интерфейс программа не хотела запускаться.
0
Mondays
3 апреля 2020, 02:08
Ну если было бы точно так же, то валидатор скушал бы) Скопируй сюда свой код, да посмотрим)
0