编号 | Basic22 |
标题 | 使用Collection.toArray()方法会抛出ClassCastException |
语言 | Java |
级别 | 1 |
类别 | 基础 |
规范说明
如果您需要从Collection获取某个类的数组,您应该将期望的类数组作为toArray方法的参数传递。否则,您将获得ClassCastException。
import java.util.ArrayList;
import java.util.Collection;
public class Test {
public static void main(String[] args) {
Collection c=new ArrayList();
Integer obj=new Integer(1);
c.add(obj);
// this would trigger the rule (and throw a ClassCastException
if executed)
Integer[] a=(Integer [])c.toArray();
// this wouldn't trigger the rule
Integer[] b=(Integer [])c.toArray(new Integer[c.size()]);
}
}