(1) List<?> myList = new ArrayList<?>();
(2) ArrayList<?> myList = new ArrayList<?>();
Я понимаю, что с (1) реализация интерфейса Список может быть заменена. Кажется, что (1) обычно используется в приложении независимо от потребности (я всегда использую это).
Мне интересно, использует ли кто-нибудь (2)?
Кроме того, как часто (и я могу, например, получить пример), на самом деле требуется использование (1) над (2) (т.е. там, где (2) не хватило бы.. как кодирование для интерфейсов и лучшие практики и т.д.)