Aê galera… to fazendo umas janelas aqui, mas me deparei com o seguinte problema, se não preencher nenhum campo do cadastro e mesmo assim clicar no botão cadastro, ele retorna um erro e trava, então queria criar um método para verificar todos os campos antes da gravação dos dados, mas não to conseguindo porque os dados são gravados por um ActionListener e ela fica no construtor, daí eu chamo o método que eu criei, mas sempre da erro.
Aí eu me fiz a pergunta que nunca havia parado pra pensar… É possível estar chamando outros métodos da classe dentro do construtor ?
Mas tome o cuidado para que esses métodos sejam ou private, ou final. Senão uma subclasse poderá sobrescreve-lo e alterar o comportamento esperado.
Lembre-se que o objeto é construído a partir da super-classe, então, chamar um método sobrescrito no construtor pode recair no sério problema da subclasse tentar usar um atributo que ainda não foi inicializado!!!
Deu certo aki… o pró é que eu tava fzendo o método public, aí tava dando erro que eu não sabia identificar qual… mas foi só trocar por private aí rodou belezinha…
Mas da próxima vez, tente não utilizar essa solução, da pra fazer o que quiser em Java sem precisar utilizar o construtor pra carregar outros métodos… não fica muito bonito…
Pq não fica bonito? Respeitando a regra de que os métodos devem ser private ou final, não vejo porque não utilizar. Dividir em outros métodos geralmente deixa o código mais organizado.
E dividir demais complica tudo. Os desenvolvedores Java querem dividir tudo o máximo possível, querendo utilizar ao máximo o conceito de OO, mas se pararmos pra pensar, só faz sentido se isolado o que pode ser utilizado por outras classe, se for uma coisa única, deixe onde está… penso sempre na reutilização do código e não em firular demais a aplicação.
Rapaz… a idéia não é mesmo firular e sim deixar o código mais claro e limpo. Especialmente se você tem uma inicialização complexa. É muito mais fácil ler algo como:
x = integral(y);
Do que se eu colocasse o cálculo para calcular a integral diretamente no construtor…
Já leu Refatoração, do Martin Fowler? Ele explica exatamente esse conceito, o porque usar, como usar e para que usar. E mostra claramente a importância de usar métodos curtos, que podem te ajudar até a aumentar a performance de sua aplicação!