Não sei se é do meu java ou algum erro bobo meu, porém olhem esse método:
[code]public boolean sexoIsValid(String sexo) {
if (sexo != “Masculino” ){
System.out.println(sexo);
System.out.println(“true”);
return false;
}
System.out.println(sexo);
System.out.println("false");
return true;
}[/code]
Eu coloquei os System.outs, para saber se eu estava fazendo algo de errado ou não, enfim, continuando…
Fui testar e independente do que eu coloco, ele retorna “true”, olha o que ele printou no console:
[quote]Masculino
true
exception.SexoException: SEXO INVÁLIDO
at cliente.Pessoa.(Pessoa.java:27)
at cliente.Cliente.(Cliente.java:13)
at principal.App.main(App.java:29)
LSLSLS
true
exception.SexoException: SEXO INVÁLIDO
at cliente.Pessoa.(Pessoa.java:27)
at cliente.Cliente.(Cliente.java:13)
at principal.App.main(App.java:29)
[/quote]
No primeiro teste eu coloquei “Masculino”, retornou true, normal. No segundo teste coloquei “LSLSLS” ele em vez de me retorna false, me retornou true. Ok, ok.
Agora o meu segundo problema é isto… No construtor da classe eu fiz assim:
public Pessoa (String nome, Data dt, String sexo) throws SexoException{
this.nome = nome;
this.dt_nascimento = dt;
this.sexo = sexo;
if (sexoIsValid(sexo) == false){
throw new SexoException ("SEXO INVÁLIDO");
}
}
Independente do que o método retorna, “true” ou “false”, ele entra na condição e gera o erro de “Sexo Inválido”, acredito que seja algum erro bobo meu que acabei deixando passar porém até agora não consegui identificar, se puderem me ajudar ficarei bem grato.
E caso seja preciso, aqui está minha classe “SexoException”:
[code]package exception;
public class SexoException extends Exception{
private static final long serialVersionUID = 1L;
public SexoException (String mensagem){
super (mensagem);
}
}
[/code]