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

É possível em Java passar um método como parâmetro para outro método?

É possível em Java passar um método como parâmetro para outro método? Ou na verdade o que você está passando para o outro método é o retorno do método que está sendo passado como parâmetro? Existem outros casos além do que eu descrevi aqui onde métodos são passados como parâmetros para outros sem que na verdade seja o retorno deles próprios que estão sendo passados como parâmetro?

3 respostas
solução!

É exatamente sua segunda afirmação. O retorno do método é passado diretamente para outro método.

Se não tiver retorno (retorno void), não tem como fazer uma chamada desse jeito (e nem motivo).

Olá Thiago,

não sei se te atende, mas isso é possível:

// static void main
CalculadorDeImposto calculadorDeImposto = new CalculadorDeImposto();
Conta conta = new Conta();
conta.setSaldo(1000.0);
double valorDoImposto = conta.calculaImposto(calculadorDeImposto);

// classe Conta
public double calculaImposto(CalculadorDeImposto calculadorDeImposto){
    return calculadorDeImposto.calculaImposto(this.saldo);
}

Na verdade aqui, passei o objeto como parâmetro e com ele, tenho acesso ao método desejado.

Edit: Não vi que já tinha sido respondido

Grato Alexandre e Luciano pelas explicações!

Luciano, grato pelo exemplo de código, e o código que eu tenho no calculador de imposto é esse, não sei se é o mesmo que o seu pq não colocou na resposta acima:

public class CalculadorImposto {

private static double impostos;

public double calculoDoImposto(Tributavel tr) {
    impostos += tr.getValorImposto();
    return impostos;
}

}