Я объявил и инициализировал myList с необработанным ссылочным типом List и необработанным типом объекта ArrayList. Затем я повторно сослался на myList на новый универсальный ArrayList of Longs. Я думал, что добавление в этот список чего-либо, кроме Long, вызовет ошибку.
List myList = new ArrayList();
myList = new ArrayList<Long>();
myList.add(3.4d);
myList.add(4.0f);
myList.add("weird");
myList.add('w');
System.out.println(myList);
Однако это выполняется без ошибок или исключений. Насколько это законно?