Boa tarde,tentei acompanhar o exercício do vídeo no qual o instrutor faz,porém eu to sempre retornando válido mesmo com as condições que eu forço para serem inválidas,como mostrado no vídeo,Emails sem o @ e senha com menos de 8 dígitos. Segue meu código do Validador
public static boolean validarObjetos(Object obj)throws Exception{
boolean resultado = true;
Class<?> c = obj.getClass(); //Pego a classe do Objeto
for(Method m : c.getMethods()){ //Buscar pelos métodos q eu quero
if(m.getName().starsWith("Validar") && m.getReturnType() == boolean.class && m.getParameterTypes().length == 0){
Boolean retorno = (Boolean) m.invoke(obj);
resultado = resultado && retorno.booleanValue(0;
}
}
return resultado;
}
Na minha classe Usuário eu criei os métodos boolean de validar a senha e o email como mencionados(acredito que aqui não possua erro de lógica) Na minha classe main eu só instanciei a classe e invoquei os métodos de ler email e senha. Criei a variável boolean resultado passando o meu validar objetos com o parâmetro da instância da classe e no meu if o coloquei como condição imprimindo as mensagens. Queria também testar um pouco a lógica que estou fazendo. Por favor me corrijam se eu estiver errado. O meu if vai buscar todos os métodos começados com "Validar" e que tem um retorno tipo boolean e que não possue parâmetros,está correto?