Reconstruir classe

9 respostas
tiagokos

Como faço para reconstruir a minha classe a partir dela mesma.

Tipo

public class Principal {
    public Principal() {
        blablabla
    }

    public void Reconstruir () {
        // aqui eu chamo denovo a Principal()
    }
}

Obrigado!

9 Respostas

evertonsilvagomesjav

Como faço para reconstruir a minha classe a partir dela mesma.

public class Principal {
    public Principal() {
        blablabla
    }

    public void Reconstruir () {
        Principal principal = new Principal()// aqui eu chamo denovo a Principal()
    }
}

isso?

tiagokos

Uhm… Dessa forma eu não acabo criando outra classe?
É que eu não quero criar outra classe, só quero reconstruir a já criada, porque eu preciso de um parâmetro dela.

N

Você quer chamar a sua classe recursivamente , é isso Thiago?

tiagokos

Sim, quando ativo esta função ela chama a própria classe, reconstruindo tudo denovo.
Mas eu não posso criar outra classe, só quero “chamar” a mesma denovo para usar o Construtor dela.

T
public class Principal {

    private static Principal principal;

    public Principal() {
        Principal principal = Principal.getInstance();
        blablabla;
    }

    public static Principal getInstance() {
	if (principal == null) {
	   principal = new Principal();
	}

	return principal;
    }
}
N
Tchaco:
public class Principal {

    private static Principal principal;

    public Principal() {
        Principal principal = Principal.getInstance();
        blablabla;
    }

    public static Principal getInstance() {
	if (principal == null) {
	   principal = new Principal();
	}

	return principal;
    }
}

Então Thiago , o que Tchaco está fazendo é através do método getInstance
retornar a instância de um objeto para uma possível uso do mesmo, comparar , etc.

S

tiagokos:
Sim, quando ativo esta função ela chama a própria classe, reconstruindo tudo denovo.
Mas eu não posso criar outra classe, só quero “chamar” a mesma denovo para usar o Construtor dela.

O construtor da classe vc só consegue utilizar uma unica vez, quando vc faz um new, então pra vc poder utilizar novamente terá que criar um novo objeto.
Na verdade vc não estará criando uma nova classe e sim um novo objeto na mesma classe.
Ex:
Principal principal = new Principal();

ViniGodoy

Não tem como você simplesmente chamar o construtor. O ideal é inverter as coisas, ou separar um método privado.

public class  Principal {  
    public Principal() {  
        Reconstruir(); 
    }  

    public void Reconstruir () {  
        // aqui eu chamo denovo a Principal()  
    }  
}

O que o construtor faz que seu método Reconstruir() não seria capaz de fazer sozinho?
Geralmente seria um problema no caso do seu construtor ter um "super".

tiagokos

É, criei um método para isso.
Problema resolvido, valeu galera :smiley:

Criado 21 de maio de 2010
Ultima resposta 21 de mai. de 2010
Respostas 9
Participantes 6