packagesql;importjava.util.ArrayList;importjava.util.List;publicclassAddvetor{publicstaticvoidmain(String[]args){Clientescli2=newClientes();ArrayList<Clientes>cli=newArrayList<Clientes>();// Aqui e minha duvida para popular o clientes *******cli2.cod="1";cli2.nome="Jose";cli.add(cli2);// adicionando mais umcli2.cod="2";cli2.nome="joao";cli.add(cli2);//System.out.print(cli2.nome);//System.out.print(cli2.nome);//System.out.print(cli.);for(inti=0;i<cli.size();i++){System.out.println(cli.get(i));}}}
Isso esta me retornando isso
sql.Clientes@12dacd1
sql.Clientes@12dacd1
Nao era para retornar algo do tipo
1,jose
2,joao
?
Pois era isso que precisava, pois futuramente vou fazer esse arraylist ser alimetado por um select e essa classe vou enviar informacoes para o meu projeto flex
É porquê você não sobreescreveu o método “toString” da sua classe Cliente…
Explicando… quando você usa o System.out.println(), ele chama o método “toString()” do seu objeto, e caso você não tenha sobreescrito esse método, ele vai usar o método que existe na classe Object, que retorna essa coisa aí mesmo…
Alguns comentários:
1. Se código é um int, o tipo de dados deveria ser int e não String;
2. Os atributos deveriam ser privados e serem acessados por gets;
3. Para definir os atributos use o construtor ou setters (se os setters forem aplicáveis).
4. Dê o nome de classes no singular. Afinal, cada objeto representa apenas um único Cliente. O arrayList, sim, pode chamar-se clientes.
D
darkin000
Entendi, mais eu ja especifiquei la que ela e string.
como teria que fazer entao ?
ViniGodoy
darkin000:
Entendi, mais eu ja especifiquei la que ela e string.
como teria que fazer entao ?
Lá aonde?
D
darkin000
Vinny, realmente deu certo, so que olha so.
ele retornou 2 joao
heheh
2,joao
2,joao
Sabe o que pode ser?
E como teria que dar o get no caso, para substituir essa linha
cli2.cod=2;
marcelo.bellissimo
Voce adicionou duas vezes o mesmo objeto na lista, percebeu?
Tem que dar um new() antes de inserir outro Cliente na lista…
ViniGodoy
Veja:
packagesql;importjava.util.List;importjava.util.ArrayList;publicclassAddvetor{publicstaticvoidmain(String[]args){//Dando nomes mais descritivos às variáveisList<Clientes>clientes=newArrayList<Clientes>();Clientescliente=newClientes();cliente.cod="1";cliente.nome="Jose";clientes.add(cliente);// adicionando mais um Clientecliente2=newCliente();//Criando um novo clientecliente2.cod="2";cliente2.nome="joao";clientes.add(cliente2);//Usando o for each. É equivalente ao seu for.for(Clientecli:clientes){System.out.println(cli);}}}
Alguns comentários:
1. Se código é um int, o tipo de dados deveria ser int e não String;
2. Os atributos deveriam ser privados e serem acessados por gets;
3. Para definir os atributos use o construtor ou setters (se os setters forem aplicáveis).
4. Dê o nome de classes no singular. Afinal, cada objeto representa apenas um único Cliente. O arrayList, sim, pode chamar-se clientes.
Esse override realmente solucionou o problema.
Unico problema e que agora eu adicionei varios campos, antes era so codigo e nome como no exemplo, agora que tem enredero, cep etc etc, como devo fazer nessa parte?
pois o select esta sempre retornando so cod, nome.