2
respostas

Classe ReajusteService não aceita o validar no método reajustarSalarioFuncionario

Minha Classe ReajusteService não aceita o validar no método reajustarSalarioFuncionario, até vai pelo atalho do crtl + espaço, porém quando salvo a classe o código não compila. Pelo meu IDE diz que "the method(Funcionario, BigDecimar) is undefined fot type ValidacaoReajuste" e dá duas opçoes uma para criar o método validar na classe Validacaoeajuste e a outra opção é adicionar o cast no "v"

Seguem os códigos da minha classe ReajusteService e da minha interface ValidacaoReajuste

package br.com.alura.rh.service;

import java.math.BigDecimal;
import java.util.List;

import br.com.alura.rh.model.Funcionario;

public class ReajusteService {

    private List<ValidacaoReajuste> validacoes;

    public ReajusteService(List<ValidacaoReajuste> validacoes) {
        this.validacoes = validacoes;
    }

    public void reajustarSalarioFuncionario(Funcionario funcionario, BigDecimal aumento) {
        this.validacoes.forEach(v -> v.validar(funcionario, aumento));

        BigDecimal salaroReajustado = funcionario.getSalario().add(aumento);
        funcionario.atualizarSalario(salaroReajustado);

    }

}

ValidacaoReajuste

package br.com.alura.rh.service;

import java.math.BigDecimal;

import br.com.alura.rh.model.Funcionario;

public interface ValidacaoReajuste {

    void validar(Funcionario funcionario, BigDecimal aumento);
}
2 respostas

Olá Caroline, tudo bem? Acredito que você precisa implementar o método validar na classe ReajusteService. O metodo validar foi declarado somente na interface no entanto nao houve implementação. Ao utilizar o metodo dentro da classe, você precisa dizer a ele o que deve ser feito e como comportar. A interface é uma assinatura, onde você declara somente o tipo de retorno (ou não retorna nada nesse caso) e seus parâmetros. No entanto nao houve implementação na classe. Ao implementar você deverá respeitar o que foi "assinado" na interface, ou seja: void e Funcionario e BigDecimal como parâmetros. Espero ter ajudado.

Oi Caroline,

Estranho pois o código aparentemente está certinho.

Faz o seguinte, quando der o erro de compilação e o eclipse sugerir as 2 opções para resolver, escolhe a opção para ele criar o método na interface ValidacaoReajuste e posta aqui como que ficou a interface com esses 2 métodos.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software