Объявляя это локально в таком методе, нет большой разницы. Вообще говоря, вы получаете больше гибкости, работая над ссылками наиболее абстрактного типа, который может работать. Вы можете увидеть это в коде типа List<String> foo = new ArrayList<>();
, потому что List достаточно.
Например, посмотрите на Collections.sort (). Требуется List
, потому что элементы списка упорядочены. Это не может просто занять Collection
, потому что коллекции не гарантированно заказаны, как Set
. Но он может использовать любую реализацию List
, например, ArrayList
, LinkedList
, и т. Д. c, потому что упорядочение является единственным свойством, которое заботит sort ().