Salve pessoal, nao to conseguindo add na lista, dar esse erro:
F:\Meus documentos\java>javac -Xlint:unchecked jogo/jogo/corpo.java
jogo/jogo/corpo.java:44: warning: [unchecked] unchecked call to add(int,E) as a
member of the raw type java.util.ArrayList
lista.add(x, Integer.toString(casa));
^
jogo/jogo/corpo.java:48: warning: [unchecked] unchecked call to add(int,E) as a
member of the raw type java.util.ArrayList
lista.add(x, Integer.toString(casaigual));
^
2 warnings
Meu codigo:
[code]
import java.util.*;
//////
boolean addp = true;
private int casa =0;
private int numero;
private int x=0;
Esses warnings são do Java 5 (reclamando que você não está usando a sintaxe de generics.)
Warnings não são erros - apenas avisos - ; pode ignorá-los, a menos que queira usar generics.
Paulo, ele quer usar java.util.List, não java.awt.List, que é o que você achou na documentação. O uso de java.util.List pelo programa do O_M3_ está correto, e compilaria corretamente com Java 1.4. No Java 5.0 também compila corretamente mas com esses warnings.
O “generics” é um acréscimo à sintaxe do Java cujo objetivo é reduzir um pouco a quantidade de casts quando se usam coleções. (Ele também serve para outras coisas, mas isso veio “de contrabando”.)
Por exemplo, quando se quer usar uma lista de objetos, normalmente não é uma lista de qualquer objeto (que é o caso do java.util.List); é uma lista que deveria conter apenas Strings, ou objetos da classe DadosCliente, ou alguma outra coisa.
No seu caso parece que é uma lista que deveria conter apenas Strings. Nesse caso você usaria um List < String > em vez de um List sem nada.
Então em vez de declarar List lista = new ArrayList(), você declararia List < String > lista = new ArrayList < String > ().
A vantagem você vê quando vai acessar um elemento dessa lista. Em vez de escrever:
String umElemento = (String) lista.get (1);
você usa simplesmente:
String umElemento = lista.get (1);
que ele sabe que você prometeu (a declaração é um tipo de “promessa”) que só vai pôr String dentro da lista. Só que internamente ele continua fazendo o cast do mesmo jeito. É só para facilitar o jeito de escrever, e fazer com que o compilador possa achar alguns erros de lógica no seu programa.
import java.util.*;
class TestLista {
//////
boolean addp = true;
private int casa =0;
private int numero;
private int x=0;
// A declaração original...
// private List lista = new ArrayList();
// Aqui estou supondo que você quer ter uma lista de Strings.
private List < String > lista = new ArrayList < String > ();
public void addfig(){
while (x < 4) {
casa++;
if(addp == true) {
addp = false;
lista.add(x, Integer.toString(casa));
} else {
addp = true;
int casaigual=casa-1;
lista.add(x, Integer.toString(casaigual));
}
x++;
}
}
}