Galera, boa noite.
Estou fazendo um projeto em java, mas parece que meu método de inclusão não funciona corretamente.
Eis o código que obtém os dados do usuário da classe Interface:
private static void incluiPaciente()
{
Cadastro cadastro = new Cadastro();
try
{
String nome;
String endereco;
String sexo;
int idade;
String cpf;
String telefone;
String diagnostico;
String tratamento; //mudar para StringBuffer
int codigoTratamento;
String profissionalResponsavel;
String especialidade;
Paciente objPaciente;
Scanner entrada = new Scanner(System.in);
System.out.println("\nCADASTRO DE PACIENTE:\n");
System.out.print("Nome: "); nome = entrada.nextLine().trim();
while(nome.isEmpty() || nome == " ")
{
System.err.println("O nome não foi informado corretamente!");
nome = entrada.nextLine().trim();
}
System.out.print("Endereço: "); endereco = entrada.nextLine().trim();
while(endereco.isEmpty() || endereco == " ")
{
System.err.println("O endereço não foi informado corretamente!");
endereco = entrada.nextLine().trim();
}
System.out.print("Sexo: "); sexo = entrada.nextLine().trim();
while(sexo.isEmpty() || sexo == " ")
{
System.err.println("Sexo não foi informado corretamente!");
sexo = entrada.nextLine().trim();
}
System.out.print("Idade: "); idade = Integer.parseInt(entrada.nextLine().trim());
{
while((idade < 0 || idade > 150))
{
System.err.println("Idade informada incorretamente!");
idade = Integer.parseInt(entrada.nextLine().trim());
}
}
System.out.print("CPF (formato 000.000.000-00): "); cpf = entrada.nextLine().trim();
while(cadastro.validaCpf(cpf) == false || cpf == " ")
{
System.err.println("Cpf inválido, verifique os pontos e/ou hífens e tente novamente!\n");
cpf = entrada.nextLine().trim();
}
System.out.println("Telefone (formato 0000-0000): "); telefone = entrada.nextLine().trim();
while(cadastro.validaTelefone(telefone) == false)
{
System.err.println("Telefone inválido, verifique os dados e tente novamente!");
telefone = entrada.nextLine().trim();
}
System.out.print("Diagnóstico: "); diagnostico = entrada.nextLine().trim();
System.out.print("Tratamento: "); tratamento = entrada.nextLine().trim();
System.out.print("Código do tratamento (apenas números): "); codigoTratamento = Integer.parseInt(entrada.nextLine().trim());
while(cadastro.validaCodigoTratamento(codigoTratamento) == false)
{
System.err.println("Dados informados incorretamente, verifique os dados e tente novamente!");
codigoTratamento = Integer.parseInt(entrada.nextLine().trim());
}
System.out.print("Dentista responsável: "); profissionalResponsavel = entrada.nextLine().trim();
System.out.print("Especialidade: "); especialidade = entrada.nextLine().trim();
objPaciente = new Paciente(nome, endereco, sexo, idade, cpf, telefone, diagnostico, tratamento, codigoTratamento, profissionalResponsavel, especialidade);
cadastro.inclusao(objPaciente);
System.out.println("\nPaciente cadastrado com sucesso!\n\n");
}
catch (Exception e)
{
e.getMessage();
}
}
E este é o código que realiza a inclusão na classe Cadastro:
[code] public void inclusao(Paciente objPaciente) throws SisDenException
{
for(Paciente obj : listaPacientes)
{
if(obj.getCpf().equals(objPaciente.getCpf()))
{
throw new SisDenException(“Já existe paciente com este CPF cadastrado!”);
}
}
listaPacientes.add(objPaciente);
}
[/code]
Não sei o que acontece, ele aceita todos os objetos que são passados como parâmetro, mesmo tendo EXATAMENTE O MESO CPF, que é a condição de validação.
Onde está meu erro?
Valeu!!!