Думаю, мне здесь не хватает чего-то базового. Любые объяснения или указатели на ранее заданные вопросы будут очень полезны.
import java.util.Arrays;
import java.util.List;
public class St {
public static void bla(Object[] gaga) {
gaga[0] = new Date(); // throws ArrayStoreException
System.out.println(gaga[0]);
}
public static void bla(List<Object> gaga) {
System.out.println(gaga.get(0));
}
public static void main(String[] args) {
String[] nana = { "bla" };
bla(nana); // Works fine
List<String> bla1 = Arrays.asList(args);
bla(bla1); // Wont compile
System.out.println(new String[0] instanceof Object[]); // prints true
System.out.println(nana.getClass().getSuperclass().getSimpleName()); // prints Object
}
}
Таким образом, похоже, что List
не является подклассом List
, а String []
является подклассом Объект []
.
Верно ли это предположение? Если да, то почему? Если нет, то почему?
Спасибо