Пожалуйста, почему я должен поставлять класс Generic с левой стороны (объявление переменной) и правую часть (назначение объекта)? Я могу технически пропустить его влево или вправо (см. Alist2 или aList2), что является недостатком aList2 и aList3 по сравнению с aList1?Использование Java Generics
ArrayList<String> aList1 = new ArrayList<String>();
ArrayList<String> aList2 = new ArrayList();
ArrayList aList3 = new ArrayList<String>();
Bonus вопрос, просто пришло мне в голову, и он собирает, но то, что это будет означать для aList4 и aList5?
ArrayList<String> aList4 = new ArrayList<>();
ArrayList<?> aList5 = new ArrayList<String>();
Заранее спасибо.
С наилучшими пожеланиями, Герман
Далеко не полный ответ, но aList3 не было бы очень полезно для дженериков класса вы спроектировали. Допустим, у вас был 'ArrayList' С помощью aList3 вам нужно было бы отбросить любой предмет из него в автомобиль. И наоборот, без дженериков справа вы добавляете вещи как объекты, которые являются технически обоснованными, но вы не хотели бы добавлять объект типа 'Car' в ArrayList, предназначенный для хранения объектов типа' Person' –
Compass