Como funciona static{...}

2 respostas
hmichel

Ola,

Quando que o initializer:

static{...}

é executado?? Como faço para executa-lo, por exemplo, fiz um Singleton, com o seguinte inicializador:

static{ friTabelas = new FriTabelas();}

existindo ainda um getInstance(), onde retorno este friTabelas. Mas não está funcionando. COmo devo proceder??

2 Respostas

Bani

O bloco static é executado quando a classe é carregada pela primeira vez.

Era para ter funcionado... que erro está dando?

Exemplo:
public class Teste {
	public static void main(String[] args) {
		Single teste = Single.getInstance();
		System.out.println(teste.nome);
	}
}

class Single {
	public String nome;
	private static Single INSTANCE;

	private Single() { nome = "bani";}

	public static Single getInstance() {
		return INSTANCE;
	}

	static { INSTANCE = new Single(); }
}

Porém, uma pessoa normal colocaria o "new Single()" junto com a declaração da variável. Não há necessidade do bloco static neste caso.

hmichel

Na verdade nao esta dando erro nenhum, apenas nao funcionou, mas como o codigo eh de estudo e esta meio complicado de ler, eu vou dar mais um estudada no meu próprio código.

valeu pela ajuda!!

Criado 29 de setembro de 2003
Ultima resposta 1 de out. de 2003
Respostas 2
Participantes 2