非参数化arraylist的分歧?

时间:2011-12-27 01:44:54

标签: android arraylist

我在eclipse中收到以下方法的警告:

public void clearArray(ArrayList a){
        a.clear();
    }

警告:

ArrayList is a raw type. References to generic type ArrayList<E> should be parameterized

代码执行得很好,但我想知道这是一个实际问题还是只是一个奇怪的日食......

1 个答案:

答案 0 :(得分:1)

一般情况下,如果您事先知道,最好指出Collection的确切类型(本例中为ArrayList);你使用泛型类型。

在你所展示的特定方法中,它可能不是一个很大的帮助,但在其他情况下(例如,如果你需要向ArrayList添加元素),额外的努力是值得的,因为它将有助于编译器捕获错误(比如将错误类型的元素添加到ArrayList)。此外,当您从ArrayList中获取元素时,它将不再需要强制转换。

对于您示例的特定情况,请按以下方式修复警告:

public void clearArray(ArrayList<String> a) {
    a.clear();
}

当然,String只是一个例子,而是使用您在ArrayList中存储的元素的实际类型。