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

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


警告:

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


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

最佳答案

通常,最好事先知道Collection的确切类型(在这种情况下为ArrayList)。您可以使用泛型类型做到这一点。

在特定的方法中,您展示它可能不会有太大帮助,但是在其他情况下(例如,如果您需要向ArrayList中添加元素)则值得付出额外的努力,因为这将有助于编译器捕获错误(例如向ArrayList添加错误类型的元素)。同样,当您将元素从ArrayList中移出时,它也将使强制类型转换变得不必要。

对于您的示例的特定情况,请像下面这样修复警告:

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


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

07-28 03:13
查看更多