我看到一段代码,但是不明白什么意思谁能帮我详细解释一下,谢谢,特别是最后一句!!!
protected ArrayList colsArray = new ArrayList();
public ReportCol[] getCols() {
if(colsArray.size() == 0) {
return null;
}
return (ReportCol[])colsArray.toArray(new ReportCol[0]);
}

解决方案 »

  1.   

    toArray
    public <T> T[] toArray(T[] a)返回一个按照正确的顺序包含此列表中所有元素的数组;返回数组的运行时类型就是指定数组的运行时类型。如果列表能放入指定的数组,则返回放入此列表元素的数组。否则,将根据指定数组的运行时类型和此列表的大小分配一个新的数组。
    如果指定的数组能容纳列表并有剩余空间(即数组的元素比列表的多),那么会将数组中紧跟在集合末尾的元素设置为 null。这对确定列表的长度很有用,但只 在调用方知道列表中不包含任何 null 元素时才有用。 
    指定者:
    接口 Collection<E> 中的 toArray
    指定者:
    接口 List<E> 中的 toArray
    覆盖:
    类 AbstractCollection<E> 中的 toArray
    参数:
    a - 要存储列表元素的数组,如果它足够大的话;否则,它是一个为存储列表元素而分配的、具有相同运行时类型的新数组。 
    返回:
    包含列表元素的数组。 
    抛出: 
    ArrayStoreException - 如果 a 的运行时类型不是此列表中每个元素的运行时类型的超类型。不用多做解释了把!