22.12 Beliebte Fehler
Programmieren von Beans ist zwar einfach, aber es schleichen sich immer wieder Fehler ein. Dieser Abschnitt soll auflisten, welche Fehler für eine Bean letal sind, so dass sie von einer Umgebung nicht erkannt werden kann.
|
Die Klasse muss öffentlich (public) und darf nicht abstrakt sein. Abstrakte Klassen können keine Exemplare bilden, das ist aber für eine Bean-Box unumgänglich. |
|
Die Klasse muss vom Klassenlader ohne Folgefehler geladen werden können. Der Vorgang kann während des Ladens durch Fehler im static-Block oder durch fehlende Klassen abgebrochen werden. |
|
Die Bean muss einen Standard-Konstruktor anbieten, der ebenfalls public sein muss. |
|
Die Klasse muss Serializable implementieren, muss also serialisierbar sein. Das hat zur Konsequenz, dass alle Attribute, die nicht transient sind, ebenso serialisierbar sein müssen. Eine Verletzung dieser Regel stellt es beispielsweise dar, wenn eine grafische Komponente eine Referenz auf ein Image-Objekt hält, denn Image-Objekte sind nicht serialisierbar. Wir müssen daher entweder ImageIcon nutzen oder eigene Methoden writeObject(), readObject() implementieren. Wenn schon eine Oberklasse serialisierbar ist, dann muss unsere Klasse nicht noch einmal Serializable implementieren, da wir dann selbst automatisch instanceof Serializable durch die Oberklasse sind. Es bietet sich jedoch zum Zweck der Lesbarkeit an, implements Serializable zu schreiben, damit das auf den ersten Blick sichtbar ist. |
|