/ / java Vector: Aviso ao adicionar objetos - java, coleções

java Vector: Aviso ao adicionar objetos - java, coleções

Quando estou adicionando um objeto String em um vetor, o seguinte aviso ocorre. Por que?

TestCollectionsMain.java:14: aviso: [desmarcada] chamada não verificada para adicionar (E) como membro do tipo bruto java.util.Vector vec.add ("M");

Respostas:

0 para resposta № 1

Desde o Java 1.5, é recomendável usar a versão genérica desses métodos.

Se você insistir em usar um tipo bruto, poderá ignorar com segurança o aviso.

BTW, você provavelmente deveria usar ArrayList ao invés de Vector é um pouco mais rápido e basicamente o mesmo.

Isto irá funcionar, apenas ignore o aviso.

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

Isso seria melhor:

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

O uso de genéricos oferece dois benefícios.

1) Ajuda você a checar em tempo de compilação, os valores adicionados à coleção são do mesmo tipo.

2) Ajudar você a evitar a transmissão ao obter os valores da coleção.

Mas, isso é apenas uma opção (não um erro de compilador) se você ainda quiser usar a versão não genérica, você está livre para fazer isso, apenas ignore a exceção, ou como jskggz diz, apenas adicione:

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

Para o seu método.


1 para resposta № 2

É porque você não está usando genéricos para declarar seu vetor.

Tente isto:

 List<String> vec = new ArrayList<String>();
vec.add("M");

1 para resposta № 3

Você pode declarar

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

ou use o

@SuppressWarnings("unchecked")

anotação no topo do seu método, se você realmente quer fazer isso. :-)