Pergunta

Acabo de instalar PMD para analisar o meu projeto Java. Muito bom ferramenta, altamente recomendado. De qualquer forma, eu tenho alguns erros dizendo:

"Um método vazio em uma classe abstrata deve ser abstrato vez"

Eu verifiquei a documentação PMD ea explicação diz:

como desenvolvedor pode contar com esta implementação vazia em vez de código o apropriado

Então, eu acho que entendo a razão por trás deste erro estilo do código, mas considere o seguinte cenário: Eu tenho uma classe abstrata chamada Entidade. Essa classe tem um método boolean com a implementação padrão. (Controla se apagar suas entidades relacionadas sobre supressão). Apenas algumas das classes derivadas substituir esse comportamento padrão para true.

Devo remover a implementação padrão e forçar todas as classes derivando para declarar o seu comportamento? Você realmente acha que este padrão é uma prática tão má?

Esclarecimento:. PMD trata de um método com instrução de retorno única como vazio

Foi útil?

Solução

Eu acho que é apenas uma orientação. Diz-lhe para que você pode querer reconsiderar seu projeto, mas se o seu design já faz todo o sentido, não há nenhuma razão para obedecer a um software, em vez de seu cérebro.

Outras dicas

Se você estiver em Java 1.8, você pode fazer Entidade um Interface em vez de uma classe abstrata e escrever um padrão implementação para o seu método nela.

public interface Entity {
    default boolean yourMethod() {
        //default implementation ...
    }
}

Você pode usar este para referência: https://docs.oracle.com/javase/tutorial/java/IandI /defaultmethods.html

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top