Pregunta

Me acaba de instalar el PMD para analizar mi proyecto Java. Muy buena herramienta, muy recomendable. De todas formas, tengo un par de errores que dicen:

  

"Un método vacío en una clase abstracta debe ser abstracta lugar"

he comprobado la documentación PMD y la explicación dice:

  

como desarrollador puede confiar en esta aplicación vacío en lugar de codificar el apropiado

Así que creo que entiendo la razón de este error estilo de código, pero cuenta la situación siguiente: Tengo una clase abstracta llamada Entidad. Esta clase tiene un método booleano con la aplicación por defecto. (controles si desea eliminar sus entidades relacionadas a la supresión). Sólo unas pocas de las clases derivadas anular este comportamiento por defecto a true.

¿Debo quitar la implementación predeterminada y obligar a todas las clases derivadas para declarar su comportamiento? ¿De verdad piensa que este patrón es una mala práctica tales?

Aclaración:. PMD trata de un método con instrucción de retorno sola como vacío

¿Fue útil?

Solución

Creo que es sólo una guía. Se da a conocer de manera que es posible que desee reconsiderar su diseño, pero si su diseño ya tiene mucho sentido, no hay razón para obedecer a un software en lugar de su cerebro.

Otros consejos

Si usted está en Java 1.8, puede hacer Entidad un Interfaz en lugar de una clase abstracta y escribir una por defecto aplicación para el método en ella.

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

Puede utilizar esto para la referencia: https://docs.oracle.com/javase/tutorial/java/IandI /defaultmethods.html

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top