84669 orang belajar
152542 orang belajar
20005 orang belajar
5487 orang belajar
7821 orang belajar
359900 orang belajar
3350 orang belajar
180660 orang belajar
48569 orang belajar
18603 orang belajar
40936 orang belajar
1549 orang belajar
1183 orang belajar
32909 orang belajar
人生最曼妙的风景,竟是内心的淡定与从容!
(T[]) Arrays.copyOf(elementData, size, a.getClass());强转可以成功是因为数组的类型本身就为a.getClass()。
(T[]) Arrays.copyOf(elementData, size, a.getClass());
a.getClass()
public static T[] copyOf(U[] original, int newLength, Class extends T[]> newType) { @SuppressWarnings("unchecked") T[] copy = ((Object)newType == (Object)Object[].class) ? (T[]) new Object[newLength] : (T[]) Array.newInstance(newType.getComponentType(), newLength); System.arraycopy(original, 0, copy, 0, Math.min(original.length, newLength)); return copy; }
通过Array.newInstance(newType.getComponentType(), newLength)创建的(目标类型)数组对象。
Array.newInstance(newType.getComponentType(), newLength)
String[] y = (String[]) x.toArray()无法强制转换是因为array的数据类型为Object[]而不是String[]。
String[] y = (String[]) x.toArray()
array
Object[]
String[]
String是Object的子类,但是String[]不是Object[]的子类,所以对于实际类型是String的Object引用是可以强转成String的。但是Object[]怎么都不能强转成String[],只能采用个个赋值的方式,把里面的引用挨个强转再拷贝过来(当然可以用Arrays.copyOf()来做这个事情。
String
Object
Arrays.copyOf()
把子類的值轉回子類才是合法的
把Object[]的值cast成String[], 這個行為和(Integer)(new Object())同類
(Integer)(new Object())
ArrayList的泛型E不是必选的,当未指定泛型的时候,例如:
E
ArrayList list = new ArrayList(); list.add("test"); list.add(123); list.add(11.22);
这种情况第二种方法是不适用的,也没办法做强制类型转换
(T[]) Arrays.copyOf(elementData, size, a.getClass());
强转可以成功是因为数组的类型本身就为a.getClass()
。通过
Array.newInstance(newType.getComponentType(), newLength)
创建的(目标类型)数组对象。String[] y = (String[]) x.toArray()
无法强制转换是因为array
的数据类型为Object[]
而不是String[]
。String
是Object
的子类,但是String[]
不是Object[]
的子类,所以对于实际类型是String
的Object
引用是可以强转成String
的。但是Object[]
怎么都不能强转成String[]
,只能采用个个赋值的方式,把里面的引用挨个强转再拷贝过来(当然可以用Arrays.copyOf()
来做这个事情。把子類的值轉回子類才是合法的
把Object[]的值cast成String[], 這個行為和
(Integer)(new Object())
同類ArrayList的泛型
E
不是必选的,当未指定泛型的时候,例如:这种情况第二种方法是不适用的,也没办法做强制类型转换