Was ist ein guter Weg, um eine Klasse unserializable?

Java enthält eine Menge von Klassen (wie in Swing), die Umsetzung der gefürchtete und fehleranfällig interface Serializable.

Wenn Sie, sagen, implementieren ein neues TableModel durch die Erweiterung AbstractTableModel, das neue Modell muss serialisierbar sein, aber was ist, wenn es mit internen Datentypen, die nicht serialisierbar sind und welche nicht, da Sie nicht Vorhaben, um diese Funktion zu verwenden überhaupt?

In diesem Fall tools wie Sonar verrückt. Die entweder beschweren sich, dass "Klasse Foo definiert, nicht-transiente nicht-serialisierbaren Instanz-Feld bar".

Also habe ich das Feld transient nur, um "Das Feld Foo.bar ist vorübergehend, aber nicht durch Deserialisierung"

Ist es möglich zu sagen, "Nein, diese Klasse nicht serializable ist, und ich nicht wollen, es zu sein" in einer Weise, dass Sie keine Fehler in tools wie Sonar?

  • Tut Sonar-Unterstützung Unterdrückung einer Warnung für eine einzelne Klasse? In IntelliJ es gibt Ihnen die option zum hinzufügen einer @SuppressWarning, um die Klasse für Sie für diese Prüfung.
  • Sonar läuft einfach FindBugs, PMD und CheckStyle auf den code und aggregiert die Ergebnisse. Also eine Lösung, die hält diese drei ruhig für mich arbeiten würde. @SuppressWarning funktioniert wie erwartet. Es gibt auch plugins, die es erlauben, Warnungen ignorieren, indem Sie Dinge wie Datei -, Pfad-oder String-Muster.
  • Nicht, dass das, was 'transient' ist für?
  • Ich bereits beantwortet in meiner Frage
Schreibe einen Kommentar