Problema com ArrayList

Bom seguinte

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]

Alguem sabe o porque esta dando o erro aqui?

C:>javac ArrayObjeto.java
ArrayObjeto.java:10: expected
t.add(l.setNome(u), l.setIdade(i), l.setEnd(a));
^
ArrayObjeto.java:11: expected
System.out.println(t);
^
2 errors

Desde já agradeço

mano , tu tem q adicionar o objeto Teste e nao as strings e ints
tenta assim :

l.setNome(u);
l.setIdade(i);
l.setEnd(a)
t.add(l);

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; }

Espero que ajude,
Atenciosamente,
Renato Araujo

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 :smiley: 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

public void add(E e){}

Outra forma é fazendo invocation chaining. Essa técnica pode ser vista em vários frameworks, como no java.nio (ByteBuffer) e nas classes do JODA.

Assim, em métodos que seriam void, ao invés de você não retornar nada, retorne this.

Por exemplo:

[code]public class Teste {
private static String nome;
private static int idade;

public Teste setNome(String nome) {
     this.nome = nome;
     return this;
}

public Teste setIdade(int idade) {
   this.idade = idade;
   return this;
}

}[/code]

Isso permite você fazer:

List<Teste> testeList = new ArrayList<Teste>(); testeList.add(new Teste().setNome("Vinicius").setIdade(27));

Exatamente como o Renato falow … isso mesmo que eu quiz dizer :smiley:

assim teus metodos retorna um valor boolean e vc definiu que teu conjunto so pode aceitar Teste… o compilador ta vendo assim:

ArrayList<Teste> l = new ArrayList<Teste>();
l.add(true);
//isso é invalido

ao contrario disso

ArrayList<Boolean> l  = new ArrayList<Boolean>();
l.add(true);
//isso compila a partir do java 5 - autoboxing

na verdade o objetivo do boolean é para chegar se a variável é valida… eu só nao coloquei a condição ainda…srsrss

mas de qualquer forma… agradeço a todos… vou testar como me informaram.

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”;
}
}