1
resposta

Retorno de system.out.println em um método com retorno boolean. É possível?

Oi pessoal!!! É possível simplificar este código? Como faço para retornar system.out.println de um método boolean da classe AutenticadorUtil e só chamar o método no SistemaInterno sem ter que fazer novo if?

Na classe AutenticadorUtil temos o seguinte método:

public boolean autentica(int senha) {
        if (this.senha == senha) {
            return true;
        } else {
            return false;
        }
    }

E na classe SistemaInterno temos este:


    public void autentica(Autenticavel aut){
        System.out.print(aut.autentica(this.senha));
        boolean autenticou  = aut.autentica(this.senha);
        if (autenticou){
            System.out.println("Pode entrar no sistema!");
        } else {
            System.out.println("Não pode entrar no sistema!");
        }
    }
1 resposta

No AutenticadorUtil você pode só escrever:

public boolean autentica(int senha) {
         return this.senha == senha;
        }

E no SistemaInterno:

public void autentica(Autenticavel aut){
        System.out.print(aut.autentica(this.senha));
        if (aut.autentica(this.senha))
            System.out.println("Pode entrar no sistema!");
        else
            System.out.println("Não pode entrar no sistema!");
        }

Como a comparação == retorna um boolean, você pode colocar direto no return ou dentro do if