PMD "Bean Mitglieder sollten Serialisieren" -Regel. Können wir es klüger machen?

8

Hier ist (wahrscheinlich gut für jemanden) " Bean-Mitglieder sollten serialisieren " PMD-Regel, die gibt Folgendes an:

  

Wenn eine Klasse eine Bean ist oder von einer Bean direkt oder indirekt referenziert wird, muss dies der Fall sein   serialisierbar. Mitgliedsvariablen müssen als flüchtig, statisch markiert werden oder haben   Accessor-Methoden in der Klasse. Das Markieren von Variablen als Transienten ist am sichersten und am einfachsten   Änderung. Zugriffsmethoden sollten den Java-Namenskonventionen folgen, d. H. Für a   Variable namens foo, getFoo () und setFoo () Accessor-Methoden sollten zur Verfügung gestellt werden.

Das Problem ist, dass es zur Zeit weder die 'Klasse ist eine Bean oder eine Bean-Bedingung' referenziert noch die 'Serializable' Schnittstelle der Klasse implementiert. Wenn Sie also eine dumme einfache Klasse mit einigen privaten Feldern ohne Accessor haben (selbst wenn die Klasse final ist), erhalten Sie einen größeren Defekt, der von Sonar markiert wird. Für die meisten Klassen sieht es witzig aus, also werde ich diese Regel definitiv deaktivieren.

Aber ich möchte solche Prüfungen für Klassen durchführen, die echte Bohnen sind. Ist es möglich (und wie) ähnliche (aber klügere) Überprüfungen mit Sonar und einem Standardsatz von Open-Source-Analysatoren (CheckStyle, PMD, Findbugs) durchzuführen? Gibt es einen anderen Weg?

    
Roman Nikitchenko 07.08.2014, 10:14
quelle

1 Antwort

4

Benutze Sonar als Administrator und gehe zu Einstellungen & gt; Qualitätsprofile & gt; Java & gt; [Dein Profil] Suche "Felder in einer" Serialisierbaren "Klasse sollten entweder transient oder serialisierbar sein" (ohne Anführungszeichen, natürlich) und aktivieren.

    
dtortola 07.01.2015, 11:21
quelle