TreeSet

2 respostas
serp

Porque isso não funciona?

TreeSet dezenas = new TreeSet();
double dezenaTemporaria;

dezenaTemporaria = Math.random() * 100;
dezenas.add(dezenaTemporaria);

pelo javac dá o seguinte erro:
“Note: NumeroQuinaSet.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.”

no Eclipse dá o seguinte warning:
“Type safety: The method add(Object) belongs to the raw type TreeSet.
References to generic type TreeSet<E> should be parameterized”

2 Respostas

mister_m

Se deu warning, é porque funciona :slight_smile:

Se não funcionasse, dava um erro.

O correto seria, nesse caso, fazer:

TreeSet&lt;Double&gt; dezenas = new TreeSet&lt;Double&gt;();
T

srpantano:
Porque isso não funciona?

TreeSet dezenas = new TreeSet();
double dezenaTemporaria;

dezenaTemporaria = Math.random() * 100;
dezenas.add(dezenaTemporaria);

pelo javac dá o seguinte erro:
“Note: NumeroQuinaSet.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.”

no Eclipse dá o seguinte warning:
“Type safety: The method add(Object) belongs to the raw type TreeSet.
References to generic type TreeSet<E> should be parameterized”

O que você pode fazer, se você (como a maioria das pessoas que trabalha hoje em dia com Java) quer escrever código que compila corretamente em JDK 1.4 ou anterior, é passar opções para o Javac (-source 1.4 -target 1.4 , por exemplo), ou configurar o Eclipse para usar a sintaxe do 1.4.
Só que aí o “autoboxing” (que é o que você usou inadvertidamente acima) não vai funcionar mais.
Agora, se você realmente quer usar a sintaxe do 5.0 (nem que seja para usar Annotations e outros recursos), precisa aprender a usar a parte de Generics também (ou pelo menos entender as mensagens de erro e “warnings”.)

Criado 13 de abril de 2005
Ultima resposta 13 de abr. de 2005
Respostas 2
Participantes 3