一、对于数组,可以认为Object[]类型是String[]的父类,如你可以这样:
String[] strs = new String[3];
Object[] objs = strs;
即使这样也容易会引发程序异常,如下面这个例子:
Integer[] ia = new Integer[5];
Number[] na = ia;
//下面代码编译正常,但运行时会引发ArrayStoreException异常
//因为0.5并不是Integer
na[0] = 0.5;
二、但对于泛型相关的集合,ArrayList<Object>不是ArrayList<String>的父类,你不不可以这样:
String[] strs = new String[3];
Object[] objs = strs;//这里将引起编译错误 |