Den4xCode
@Den4xCode
Coder

Что значит запись: Collection collection = new ArrayList();?

Collection collection = new ArrayList(); //?WTF?

ArrayList x = new ArrayList<>(); // вот эта запись четкая и ясная

совсем каша в голове из-за 1-ой строчки, не понимаю что это значит. В гугле говорят это тип правило этикета. такой ответ мне не ясен. хотелось бы более точный ответ или ссылку на точное объяснение.
  • Вопрос задан
  • 161 просмотр
Решения вопроса 2
sergey-gornostaev
@sergey-gornostaev Куратор тега Java
Седой и строгий
Погружайтесь в ООП, знакомьтесь с принципами SOLID, всё станет понятно.
Ответ написан
Комментировать
Maksclub
@Maksclub
maksfedorov.ru
Изучите ковариантность и контрвариативность типов.
А также Liskov Substitution Principle из SOLID — объяснит мотивацию такого написания.
Должно стать понятнее.

Пример:
Когда вы говорите, что во дворе стоит авто (Тип переменной), полученная (оператор присваивания) покупкой Nissan Quashkai, то выражение верно логически по соблюдению типов.
Наоборот — нет, тк при покупке машины во дворе не появится Quashkai гарантированно :)


Иными словами ArrayList является также Collection и потому все переменные этого типа являются корректными коллекциями,
Также как все Ниссан кашкаи являются корректными автомобилями
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы