Modificando valor de uma variavel STATIC a partir de um método

Como as classes são muito compridas, acredito que conseguirei explicar por aqui…

Tenho uma variável estatica:

private static String lHost

pois esse valor é o mesmo por todos os objetos instanciados…

tenho um método getter e um setter para essa variável (tendo em vista que ela é private)… os métodos devem também ser STATIC?? (já tentei os dois, mas só pra saber mesmo)…

Bom, eu executo um método essa mesma classe: GerenciadorServer:

public void gerencia() - onde uma das primeiras linhas, ele chama o setLHost passando como argumento o String.valueOf(blablagetLocalHost) (método que me retorna o nome e ip local).

O fato é que a variável estática continua nula, nao estou conseguindo mudá-la, outra coisa curiosa, é que no DEBUG do eclipse a variável nao aparece na listinha (this, etc) onde aparecem as variaveis e seus valores antes e/ou depois de setados.

Alguém sabe como modifico o valor da mesma?

Obrigado!

Bom lá vai a classe para quem quiser dar uma olhada:

[code]package gerenciador;

import java.io.;
import java.net.
;

public class GerenciadorServer {

private String recebido = null;
private String envia = "ok\n";
private static String localHost;
private int index;

public String getRecebido() {
	return recebido;
}

public void setRecebido(String rec) {
	recebido = rec;
}

public String getEnvia() {
	return envia;
}

// trata e seta localHost
public void setLocalHost( String localH ){
	index = localH.indexOf("/");
	localHost = localH.substring(index+1);
}

public String getLocalHost() {
	return localHost;
}

public void gerencia() throws Exception {
	
	//cria socket de comunicação com os clientes
	ServerSocket welcomeSocket = new ServerSocket(6968);
	
	// seta o LocalHost no server
	setLocalHost(String.valueOf(InetAddress.getLocalHost()));
	
	
	//espera a mensagem de algum cliente e trata
	while(true) {
		Socket connectionSocket = welcomeSocket.accept();
		
		BufferedReader recebidoDoCliente = 
			new BufferedReader( new InputStreamReader(connectionSocket.getInputStream()));
		
		//DataOutputStream enviaProCliente =
		//new DataOutputStream(connectionSocket.getOutputStream());
		
		recebido = recebidoDoCliente.readLine();
		
		if (recebido.length() > 0) {
			if ( recebido.substring(0,9).equals("BSMIPHOME")) {
				String ipDest = recebido.substring(9); // recebe o ipHome do outro e seta como meu ipDest
				GerenciadorClient client = new GerenciadorClient();
				client.setIpDest(ipDest);
				System.out.println(recebido); //debug
			}
			else {
				System.out.println(recebido);
			}
			
			String confirma = "MensagemRecebida!";
			//client.gerencia(1, confirma);
		}
		
		welcomeSocket.close();
		//enviaProCliente.writeBytes(envia);
		
	}
}

}[/code]

Ele não precisa ser necessariamente static. Métodos comuns podem acessar atributos estaticos normalmente.

Entretanto, normalmente é bom que ele seja. Assim você enfatiza que a propriedade é válida para a classe toda, não somente para o objeto em questão.

a questão é que nao está acessando…
o resultado no final é NULL.

se eu mudo a variável para não-estática, ela é acessada e modificada normalmente, porém eu necessito que ela seja ESTÁTICA.

Obrigado!

[code]// trata e seta localHost
public void setLocalHost( String localH ){
index = localH.indexOf("/");
localHost = localH.substring(index+1);
System.out.println(“Ola amigao, tudo bom ?”);
System.out.println("Saca so, vc passou a string: " + localH);
System.out.println("O indexOf(/) eh " + index + “alias index deveria ser uma variavel de metodo e nao um atributo de classe…”);
System.out.println(“Bom, ai vc vai pegar o index + 1 =” + index + 1);
System.out.println("lala… " + localH.substring(index+1));
System.out.println(“Certo ? Bom cara, eh isso boa sorte!!”);

}[/code]