我在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中的元素的实际类型。