Mudar valor de uma varíavel membro de classe

4 respostas
A

Dada a classe abaixo, preciso que após o loop for os valores das variavels "a" e "b" sejam modificadas para "valorAXX" e "valorBXX" respectivamente.
Como o array é uma cópia e não faz referência direta aos campos, gostaria de saber se existe alguma forma de fazer essa atribuição.

PS: O exemplo abaixo é só uma forma simplificada do problema, mas a solução que necessito é exatamente o demonstrado: ter as variavies da classe dentro de um array e atribuir valores a elas dentro de um loop for

public class Test {

	public static String a = "valorA";
	public static String b = "valorB";
	
	
	public static void loadSuffix(){
		String suffix = "XX";
		String[] campos = {
				a,
				b
		};
		
		for (int i = 0; i < campos.length; i++) {
			campos[i] = campos[i]+suffix;
		}
	}
	
	public static void main(String[] args){
		loadSuffix();
		System.out.println(a);
		System.out.println(b);


		
	}
}

4 Respostas

gpd38

Coloca assim e ve se resolve
O vetor de String como glogal( A classe inteira visualiza)

public class test {

	public static String a = "valorA";
	public static String b = "valorB";
	public static String[] campos = { a, b };

	public static void loadSuffix() {
		String suffix = "XX";

		for (int i = 0; i < campos.length; i++) {
			campos[i] = campos[i] + suffix ;
		}
	}

	public static void main(String[] args) {
		loadSuffix();
		System.out.println(campos[0]+ "" + a);
		System.out.println(campos[1]);

	}
}
A

Não funcionou. O que preciso é exatamente o que a classe abaixo faz, mas dessa forma não é prático para minha real finalidade. O ideal seria referenciar as variávies globais dentro de um array e depois usar um for() para concatenar o suffix. No final o esperado seria:
valorAXX
valorBXX

public class Test {

	public static String a = "valorA";
	public static String b = "valorB";
	
	
	public static void loadSuffix(){
		String suffix = "XX";
		/*String[] campos = {
				a,
				b
		};
		
		for (int i = 0; i < campos.length; i++) {
			campos[i] = campos[i]+suffix;
		}*/
		a = a + suffix;
		b = b + suffix;


	}
	
	public static void main(String[] args){
		loadSuffix();
		System.out.println(a);
		System.out.println(b);


		
	}
}
wellington7

que tal passar o array de variáveis globais por parâmetro e depois retornar o array modificado?

Seria melhor se pudesse postar um código completo mostrando o que acontece e o que deve acontecer.

A

Seguinte, o que deve acontecer é exatamente o que esse código faz: o metodo loadSuffix() concatena o suffix aos valores atuais das variávies a e b e atribui esse novo valor as variávies respectivamente.

public class Test {  
   
     public static String a = "valorA";  
     public static String b = "valorB";  
       
       
     public static void loadSuffix(){  
         String suffix = "XX";  
  
         a = a + suffix;  
         b = b + suffix;  
   
   
     }  
       
     public static void main(String[] args){  
         loadSuffix();  
         System.out.println(a);  
         System.out.println(b);  
   
   
           
     }  
 }

RESULTADO:
valorAXX
valorBXX

Quando o loadSuffix() é executado a variável a e b agora valem "valorAXX" e "valorBXX"

O que preciso seria listar as variáveis a e b em um array de String e fazer um for() interagindo sobre o array e concatenando o suffix à elas.

public static void loadSuffix(){  
         String suffix = "XX";  
         String[] campos = {
                  a,
                  b
         };
  
         for (int i = 0; i < campos.length; i++) { 
             // Codigo para fazer a atribuição de valore
         }
   
   
     }
Criado 17 de abril de 2010
Ultima resposta 18 de abr. de 2010
Respostas 4
Participantes 3