Вектор Java: предупреждение при добавлении объектов - PullRequest
0 голосов
/ 22 июня 2010

Когда я добавляю объект String в вектор, появляется следующее предупреждение. Почему?

TestCollectionsMain.java: 14: предупреждение: [не проверено] непроверенный вызов для добавления (E) в качестве член необработанного типа java.util.Vector vec.add ( "М");

Ответы [ 3 ]

1 голос
/ 22 июня 2010

Вы можете объявить

Vector<String> vec = new Vector<String>();

или используйте

@SuppressWarnings("unchecked") 

аннотация вверху вашего метода, если вы действительно хотите это сделать. : -)

1 голос
/ 22 июня 2010

Это потому, что вы не используете Generics для объявления вашего вектора.

Попробуйте это:

 List<String> vec = new ArrayList<String>();
 vec.add("M");
0 голосов
/ 22 июня 2010

Начиная с Java 1.5, рекомендуется использовать универсальную версию этих методов.

Если вы настаиваете на использовании необработанного типа, вы можете спокойно проигнорировать предупреждение.

Кстати, вы, вероятно, должны использовать ArrayList вместо Vector, это немного быстрее и делает в основном то же самое.

Это запустится, просто проигнорируйте предупреждение.

public static void main( String [] args ) {
    Vector v = new Vector();
    v.add("M");
 }

Это было бы лучше:

public static void main( String [] args ) {
     List<String> v = new ArrayList<String>();
     v.add("M");
}

Использование генериков даст вам два преимущества.

1) Помогает вам проверить во время компиляции, значения, добавленные в коллекцию, того же типа.

2) Помочь вам избежать приведения при получении значений из коллекции.

Но это всего лишь вариант (без ошибки компилятора), если вы все еще хотите использовать неуниверсальную версию, вы можете это сделать, просто проигнорируйте исключение или, как говорит jskggz, простодобавьте:

 @SuppressWarnings("unchecked") 
 public static void main(String[] args) {

к вашему методу.

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