3
respostas

Exception in thread "main" java.lang.Error: Unresolved compilation problem: The blank final field outroImposto may not have been initialized

Alguém poderia me ajudar com erro? Abaixo o código:

public abstract class Imposto {

    protected final Imposto outroImposto;

    public Imposto(Imposto outroImposto){
        this.outroImposto = outroImposto;
    }

    public Imposto(){}

    public abstract double CalculoDoImposto(Orcamento orcamento);

    protected double CalculoDoOutroImposto(Orcamento orcamento){
        if(outroImposto == null) return 0;
        return outroImposto.CalculoDoImposto(orcamento);
    }

}

Erro: Exception in thread "main" java.lang.Error: Unresolved compilation problem: The blank final field outroImposto may not have been initialized

at imposto.Imposto.(Imposto.java:10)

at imposto.impostoISS.(impostoISS.java:8)

at testeimposto.TesteImpostoComposto.main(TesteImpostoComposto.java:11)

3 respostas

Tenta assim

public abstract class Imposto {

          private final Imposto outroImposto;
          public Imposto(Imposto outroImposto) {
              this.outroImposto = outroImposto;
          }

          public Imposto() {
              outroImposto = null;
          }

          protected double calculaOutroImposto(Orcamento orcamento) {
              return (outroImposto == null? 0 : outroImposto.calcula(orcamento));
          }

          public abstract double calcula(Orcamento orcamento);
      }

Valeu. Obrigado!

Se funcionou marca a minha resposta como solucionadora para fecharmos o tópico.