/ / Czy parametr typu jest użyteczny w konstruktorze generowania instancji obiektu? - Java, generics, tworzenie instancji, operator diamentów

Czy parametr type jest przydatny w konstruktorze tworzenia instancji obiektu? - java, generics, tworzenie instancji, operator diamentów

Wiem to od Java 7, powtarzając typ aklasa ogólna w konstruktorze podczas tworzenia instancji jest redundancją. Ale co z operatorem diamentów <>, czy można go powtórzyć? Innymi słowy, chciałbym wiedzieć, jaka jest różnica między tym:

List<String> Fruits = new ArrayList<>();

i to

List<String> Fruits = new ArrayList();

albo to

 Map<Integer, String> students = new HashMap<>();

i to

 Map<Integer, String> students = new HashMap();

Z góry dziękuję

Odpowiedzi:

7 dla odpowiedzi № 1

Tak, jest różnica. Operator diamentu jest tylko skrótem do określania całego rodzaju ogólnego, ponieważ można go wywnioskować. Są one równoważne:

List<String> Fruits = new ArrayList<>();

i

List<String> Fruits = new ArrayList<String>();

Jednak bez żadnych wsporników kątowychoznacza, że ​​używasz typu surowego, który różni się od używania typów generycznych w klasie. Generuje to niesprawdzone ostrzeżenie o przypisaniu i należy tego unikać.

List<String> Fruits = new ArrayList();  // warning!