Interromper um Construtor?

6 respostas
O

Posso validar dados no Construtor de uma classe qualquer ou utilizar de métodos para isso, correto? Mas e se os dados não forem válidos, consigo interromper o construtor ou um novo Objeto será instanciado?

6 Respostas

peczenyj

Vc pode lançar uma exception, assim o objeto não sera criado.

Veja se as regras de validação e/ou criação não são muito complexas a ponto de ser melhor vc utilizar um pattern como o Factory (uma fabrica de objetos).

O

Ok, vou pesquisar!

Obrigado!

Andre_Brito

Dá pra usar return também. Só que aí a referência não fica nula e você ainda pode chamar métodos daquele objeto.
Mas segue a dica do pacman… É muito mais elegante.

Algo como:

public class Classe { public Classe() { return; } }

J

pode ser algo como:

public class MyClass {

   public MyClass(String arg) {
         if (arg == null) {
              throw new IllegalArgumentException();
         }
   }

}

[]'s

sergiotaborda

O seu design é falho. Mesmo que vc dê um return ou lance uma exeção antes dos construtor terminar, o objeto já foi criado.

O que vc deve fazer é um método estático que recebe os parametros e faz as validações e só cria o objeto se tudo estiver ok.

O

Agradeço a todas as respostas, valeu pessoal!!

Criado 14 de janeiro de 2010
Ultima resposta 15 de jan. de 2010
Respostas 6
Participantes 5