Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Duvida no Cap.5 / Exercício do vídeo

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?

2 respostas
solução!

Oi Leonardo, seu método de validação começa com "Validar" mesmo, com V maiúsculo?

Infelizmente acabei de perceber que ele começa sim Alberto... Obrigado por responder tão rápido. Compilou aqui sem problemas.