Question

Je viens d'installer PMD pour analyser mon projet Java. Très bel outil, fortement recommandé. Quoi qu'il en soit, je suis arrivé quelques erreurs en disant:

  

« Une méthode vide dans une classe abstraite doit être abstraite au lieu »

J'ai vérifié la documentation PMD et l'explication dit:

  

en tant que développeur peut se fonder sur cette mise en œuvre vide plutôt que le code celui qui convient

Je pense que je comprends la raison derrière cette erreur de style de code, mais considère le scénario suivant: J'ai une classe abstraite appelée entité. Cette classe a une méthode booléenne avec implémentation par défaut. (contrôles de supprimer ou non ses entités liées à la suppression). Seules quelques-unes des classes dérivées remplacer ce comportement par défaut à true.

Dois-je supprimer l'implémentation par défaut et forcer toutes les classes dérivées de déclarer leur comportement? Pensez-vous vraiment ce modèle est une mauvaise pratique?

Précision:. PMD traite une méthode avec déclaration unique de retour comme vide

Était-ce utile?

La solution

Je pense qu'il est juste une ligne directrice. Il vous dit afin que vous voudrez peut-être reconsidérer votre conception, mais si votre conception fait déjà son sens, il n'y a aucune raison d'obéir à un logiciel au lieu de votre cerveau.

Autres conseils

Si vous êtes sur Java 1.8, vous pouvez faire l'entité Interface au lieu d'une classe abstraite et d'écrire un par défaut mise en œuvre pour la méthode en elle.

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

Vous pouvez l'utiliser pour référence: https://docs.oracle.com/javase/tutorial/java/IandI /defaultmethods.html

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top