Estou precisando montar este código aqui, mas estou com uma dificuldade pra montar o ArrayList.
cod:
[code]public class ArrayObjeto{
public static void main(Sting args[]);
String u = "henry";
int i = 21;
String a = "Rua Guapó, 55, jaguaré";
List<Teste> t = new ArrayList<Teste>();
Teste l = new Teste();
t.add(l.setNome(u), l.setIdade(i), l.setEnd(a));
System.out.println(t);
}[/code]
Pra isso eu tenho uma classe Teste
[code]public class Teste{
private String nome = “”;
private int idade = 0;
private String end = “”;
public boolean setNome(String nome){
if(nome == null){
System.out.println("O campo nome está em branco");
return (false);
}
else{
this.nome = nome;
return (true);
}
}
public boolean setIdade(int idade){
if(idade == 0){
System.out.println("Dado inválido, digite novamente");
return (false);
}
else{
this.idade = idade;
return(true);
}
}
public boolean setEnd(String end){
if(end == null || end == ""){
System.out.println("Dado inválido, digite");
return(false);
}
else{
this.end = end;
return(true);
}
}
public String getNome(){
return(this.nome);
}
public int getIdade(){
return(this.idade);
}
public String getEnd(){
return(this.end);
}
public String toString(){
return("Seu nome é: " + getNome() + "\n" + "Sua idade é: " + getIdade() + "\n" + "Seu endereço é: " + getEnd());
}
}[/code]
Uma possiblidade seria utilizar algo conforme abaixo:
== ArrayObjeto
import java.util.ArrayList;
import java.util.List;
public class ArrayObjeto {
public static void main(String args[]) {
String u = "henry";
int i = 21;
String a = "Rua Guapó, 55, jaguaré";
List<Teste> t = new ArrayList<Teste>();
t.add(new Teste(u, i, a));
System.out.println(t);
}
}
Já o Teste ficaria com um construtor, acrescentando:
public Teste(String nome, int idade, String end) {
super();
this.nome = nome;
this.idade = idade;
this.end = end;
}
Como o Wolfx disse cara para melhorar isso cara na classe Teste faça ai um construtor cara que eu acho que nesse caso vai te ajudar mais Não vai precisar ficar l.setNome(…), l.set… entende, tipo já inicializa o Objeto de um vez acho que nesse caso será melhor…
Sobre ArrayList()… depois que voce construir o Objeto teste então faça isso
List<?> array = new ArrayList();
ou
List array = new ArrayList();//compilar mostrar um Warning
ou
List array = new ArrayList();//sem Warning…
enfim tem muito jeito de instanciar um ArrayList… só a unica coisa que voce errou cara foi chamar os metodos do Objeto Teste dentro do metodo add de ArrayList()…
De uma olhada no javaDoc de ArrayList() você verá um metodo parecido com esse
Um conselho q eu vou te dar, que nao tem nada a ver com a pergunta:
evite escrever um metodo “setter” com um retorno boolean, e passe a usar void; porque 1) e’ um pe no saco ficar fazendo validacao desse jeito, 2) isso lembra programacao imperativa em C-puro, 3) o codigo fica confuso e, 4) ha um desperdicio de processamento.
Ao inves disso, use um metodo private assim:
private boolean validar() {
if (nome == null || end == null || nome.equals("") || end.equals("") || idade <= 0)
return false;
else
return true;
}
E use-o apenas em metodos de acoes, nao em metodos “getters” e “setters”, por exemplo:
public String felicitacoes() {
if (validar()) {
return "Ola, " + getNome() + "\nSua idade e’ " + getIdade() + "\ne seu endereco e’ " + getEnd();
} else {
return “Suas informacoes nao estao completas”;
}
}