In Java erweitern die Collection-Schnittstellen Serializable aus mehreren guten Gründen nicht. Darüber hinaus implementieren die meisten gängigen Implementierungen dieser Schnittstellen Serializable.Java: Wie man serialisierbare Sammlungen sicherstellen kann
So Objekte, die eine der Erfassungs-Schnittstellen implementieren sind serializable wenn die Umsetzung selbst serialisierbar ist (was in der Regel der Fall ist) und, wenn die Objekte in der Sammlung alle serializable sind.
Aber wie kann ich sicherstellen, dass diese beiden Bedingungen erfüllt sind? Ich möchte nicht auf einen Laufzeitfehler stoßen, da der Compiler diese Bedingungen überprüfen könnte. Ich denke an einigen offensichtlichen Schnittstelle wie (Schaufenster für die List-Schnittstelle):
public interface SerializableList<T extends Serializable> extends Serializable, List<T> {}
Ich frage mich, wenn niemand sonst dieses Problem konfrontiert ist, und kam mit dieser einfachen Lösung auf. Bisher konnte ich dazu weder eine Lösung noch eine Diskussion finden, was mich an meiner Idee zweifeln lässt.
Sie können Ihren 'List'-Verweis als -' List ', wenn ich Ihre Frage richtig verstehe. Sie müssen keine eigene Benutzeroberfläche einrichten. –
Der Compiler kann das nicht überprüfen. Jede Klasse, die Serializable implementiert, könnte ein nicht vorübergehendes, nicht serialisierbares Feld enthalten, das zu einer Laufzeitausnahme führen würde. Und eine ArrayList
@RohitJain: Ihr Vorschlag garantiert nur, dass die Objekte in der Liste serialisierbar sind, aber nicht die List-Implementierung selbst. – MrD