Подскажите, почему такой вот кусок кода вообще может работать _без_ ошибок во время компиляции?
// ObjArr.java
2
3
4 public class ObjArr {
5 public static void main(String[] args) {
6 Object[] objs = new Integer[20];
7 objs[0] = "What the heck? It works o_O";
8 }
9 }
В это же время «строгая» Java не позволит мне сделать что-то наподобии
import java.util.*;
public class ObjArr {
public static void main(String[] args) {
ArrayList<Object> objs = new ArrayList<Integer>();
}
}
incompatible types found : java.util.ArrayList<java.lang.Integer> required: java.util.ArrayList<java.lang.Object> ArrayList<Object> objs_1 = new ArrayList<Integer>(); ^ 1 error
Что-то я запутался...