Разветвления непараметрического массива? - PullRequest
1 голос
/ 27 декабря 2011

Я получаю предупреждение в затмении для следующего метода:

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

предупреждение:

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

Код выполняется просто отлично, но мне было интересно, если это актуальная проблема или просто странное затмение ...

1 Ответ

1 голос
/ 27 декабря 2011

В общем, лучше указать точный тип коллекции (в данном случае ArrayList), если вы знаете это заранее; Вы делаете это, используя универсальные типы.

В конкретном методе, который вы демонстрируете, это может не сильно помочь, но в других ситуациях (например, если вам нужно добавить элементы в ArrayList) дополнительные усилия стоят того, так как они помогут поймать компилятор ошибки (например, добавление неверного типа элементов в ArrayList). Кроме того, он сделает ненужными приведение типов, когда вы получаете элементы из ArrayList.

В конкретном случае вашего примера исправьте предупреждение следующим образом:

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

Конечно, String это просто пример, вместо этого используйте фактический тип элементов, которые вы храните в ArrayList.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...