Sempre que vou criar uma classe que tenha cpf uso esse código para validar oque o usuário digita
public void setCPF(String CPF) { if (CPF.matches("^(\\d{3}[\\.-]){3}\\d{2}$")) { this.CPF = CPF; } }
Tá correto? é uma boa pratica para iniciantes?
Sempre que vou criar uma classe que tenha cpf uso esse código para validar oque o usuário digita
public void setCPF(String CPF) { if (CPF.matches("^(\\d{3}[\\.-]){3}\\d{2}$")) { this.CPF = CPF; } }
Tá correto? é uma boa pratica para iniciantes?
Cria uma classe que valida CPF, assim você chama onde precisar.
Ter uma classe específica como o @javaflex mencionou é realmente melhor.
No seu exemplo porém, tem um problema bem grave em geral: o código falha silenciosamente!
O que é isso? Se eu chamo o método setCPF e nada acontece, eu espero que o CPF tenha sido aceito.
Mas se passo um CPF inválido, o sistema simplemente nao faz nada e nao dá nenhum aviso que falhou.
Uma abordagem melhor nesse caso é fazer o sistema lançar uma Exception caso o CPF seja inválido.
Amigo, use este método abaixo, ele valida um CPF por completo.