Dúvida java

8 respostas
Marques

Colegas,

No trecho abaixo, como eu faço para imprimir o valor das variáveis conforme especificado na linha de comentário?

Muito obrigado,

Marques

int nivel1 = 2;
		int nivel2 = 3;
		int nivel3 = 42;
		int nivel4 = 44;
		
		for (int i = 1; i < 4; i++) {
			//Como eu faço para imprimir o valor de nivel1, nivel2, nivel3 e nivel4?
			System.out.println ("nivel" + i " = " ???);
			
		}

8 Respostas

ViniGodoy

1. Crie um array;
2. Use o for.

int nivel[] = new nivel[4];
int nivel[0] = 2;   
int nivel[1] = 3;   
int nivel[2] = 42;   
int nivel[3] = 44;   
           
for (int i = 0; i < 4; i++) {   
   //Como eu faço para imprimir o valor de nivel1, nivel2, nivel3 e nivel4?   
   System.out.println ("nivel" + (i+1) + " = " + nivel[i]);
}
Danillo_Moreno

Entendi errado o que vc queria… eheheh

Marques

Na realidade o que quero dentro do for eh verificar o valor da variavel:

for (int i = 1; i < 4; i++) {
                        String var = "nivel" + i;
                        if (var == alguma_coisa) {
                           //faça algo
                        }
			
		}
ViniGodoy

Olha lá como eu fiz.

Marques

Meu caro ViniGodoy,

Da forma como vc fez não rolou porque na realidade o problema é o seguinte: Tenho um objeto com os atributos nivel1, nivel2 nivel3 e nivel4 e eu preciso pegar o valor desses atributos. Se não houver algo que otimize o meu código vou ter que fazer algo do tipo para cada um desses atributos:

if (nivel1 == alguma_coisa) { //facça algo
}

lcegatti

Se não tiver problema pra vc em usar outras libs, vc pode usar a classe PropertyUtils da commons-beanutils:

String valor = (String) PropertyUtils.getProperty(meuObjeto, "nivel"+i);

Onde meuObjeto(1º Parametro) é o objeto contendo seus atributos, e o segundo parametro é o nome do seu atributo, ele retorna o valor do atributo.

Caso contrário terá que ser por reflection mesmo.

[]'s

Marques

wlw Icegatti!!!
Funcionou!!!
Obrigado!

ViniGodoy

Ah bom, nesse caso, é reflection mesmo.

Criado 22 de agosto de 2008
Ultima resposta 22 de ago. de 2008
Respostas 8
Participantes 4