Dúvidas com for

5 respostas
novata

Oi pessoal.

Tenho uma classe que possui os seguintes atributos:

protected String data1;
	protected String data2;
	protected String data3;
	protected String data4;
	protected String data5;
	protected String data6;
	protected String data7;
	protected String data8;
	protected String data9;
	protected String data10;

E estou precisando pegar cada um desses valores e setar uma String diferente. Então faço assim:

classe.setData1("Teste1");
classe.setData2("Teste2");
classe.setData3("Teste3");
classe.setData4("Teste4");
classe.setData5("Teste5");
classe.setData6("Teste6");
classe.setData7("Teste7");
classe.setData8("Teste8");
classe.setData9("Teste9");
classe.setData10("Teste10");

Queria saber se tem como eu fazer um for para pegar todas essas datas sem ter que pegar uma por uma…

Vlw

5 Respostas

T

Credo! Quifeio…

De qualquer maneira, a declaração deveria ter sido feita de forma diferente, para você poder ter as coisas mais corretas.

protected String[] data = new String [11];

e então

classe.setData(1, "Teste1");

A definição de “setData” eu deixo por sua conta. É trivial.

(Alguém vai lhe responder que você poderia usar “reflection” e outros quetais, mas eu não recomendaria isso. É muito complicado, lento e difícil de entender depois. O correto é fazer as coisas direito e de forma simples.

P

Porque vc não cria uma lista ao inves de ter um atributo por data.

novata

thingol:
Credo! Quifeio…

De qualquer maneira, a declaração deveria ter sido feita de forma diferente, para você poder ter as coisas mais corretas.

protected String[] data = new String [11];

e então

classe.setData(1, "Teste1");

A definição de “setData” eu deixo por sua conta. É trivial.

(Alguém vai lhe responder que você poderia usar “reflection” e outros quetais, mas eu não recomendaria isso. É muito complicado, lento e difícil de entender depois. O correto é fazer as coisas direito e de forma simples.

Vlw pela resposta!
Mas tenho um probleminha… é que essas datas vão para um relatório, e no relatório preciso desses campos (data1, data2…), com esses nomes…
Daí não sei o que fazer…

peczenyj

Faz sentido o relatorio receber data9 ou um atributo cujo nome é mais eloquente como “endereço”, “cnpj” e por ai vai?

Se vc tem atributos que terminam em numero é um indicio que podem ser substituidos por uma lista ou array. Se vc não pode trocar pq eles ‘são usados em outro lugar’ nada impede que vc altere quem recebe para trabalhar de uma forma… digamos… mais natural.

novata

peczenyj:
Faz sentido o relatorio receber data9 ou um atributo cujo nome é mais eloquente como “endereço”, “cnpj” e por ai vai?

Se vc tem atributos que terminam em numero é um indicio que podem ser substituidos por uma lista ou array. Se vc não pode trocar pq eles ‘são usados em outro lugar’ nada impede que vc altere quem recebe para trabalhar de uma forma… digamos… mais natural.

E como faria para chamar o item do List no meu relatório?
Tenho $F{data0}, como iria chamá-lo?

Vlw

Criado 17 de abril de 2009
Ultima resposta 17 de abr. de 2009
Respostas 5
Participantes 4