JavaBeans
- Nicht zu verwechseln mit Enterprise JavaBeans .
JavaBeans sind Klassen in der Java-Sprache , die nach bestimmten Regeln geschrieben werden. Sie werden verwendet, um mehrere Objekte zu einem ( engl. Bean - Bohnen, Kaffeebohnen) für eine einfache Datenübertragung zusammenzufassen. [eines]
Die Spezifikation von Sun Microsystems definiert JavaBeans als wiederverwendbare Softwarekomponenten, die mit grafischen Designern und IDE -Tools manipuliert werden können .
JavaBeans bilden die Grundlage für wiederverwendbare, integrierbare und modulare Softwarekomponenten . JavaBeans können viele Formen annehmen, aber sie werden am häufigsten in Elementen der grafischen Benutzeroberfläche ( GUI) verwendet . Eines der Ziele beim Erstellen von JavaBeans ist die Interaktion mit ähnlichen Komponentenstrukturen . Beispielsweise kann ein Windows-Programm mit dem entsprechenden Bridge- oder Wrapper-Objekt eine JavaBeans-Komponente verwenden, als wäre es eine COM- oder ActiveX- Komponente .
JavaBean-Beschreibungsregeln
Damit eine Klasse als Bean funktioniert, muss sie bestimmten Methodennamens-, Konstruktor- und Verhaltenskonventionen folgen. Diese Konventionen ermöglichen die Erstellung von Tools, die JavaBeans verwenden, ersetzen und verknüpfen können.
Die Beschreibungsregeln sind:
- Die Klasse muss einen parameterlosen Konstruktor mit einem Zugriffsmodifizierer haben
public. Ein solcher Konstruktor ermöglicht es Tools, ein Objekt ohne die zusätzliche Komplexität von Parametern zu erstellen. - Auf Klasseneigenschaften muss über
get,setund andere Methoden (sogenannte Zugriffsmethoden ) zugegriffen werden können , die der Standardnamenskonvention entsprechen müssen. Auf diese Weise können Tools Bean-Inhalte automatisch erkennen und aktualisieren. Viele Tools verfügen sogar über spezialisierte Editoren für verschiedene Arten von Eigenschaften. - Die Klasse muss serialisierbar sein . Dadurch ist es möglich, den Bean-Zustand plattform- und VM-unabhängig zuverlässig zu sichern, zu speichern und wiederherzustellen.
- Für die Klasse müssen die Methoden equals(), hashCode() und toString() überschrieben werden.
Da die Anforderungen meistens als Konvention und nicht als Schnittstelle ausgedrückt werden , betrachten einige Entwickler JavaBeans als einfache alte Java-Objekte , die bestimmten Namenskonventionen folgen.
Beispiele
// PersonBean.java
Die öffentliche Klasse PersonBean implementiert java . io . Serialisierbar {
privater Stringname ; _
privat boolean verstorben ;
öffentliche PersonBean () {
}
// Methoden Getter (get) und Setter (set)
öffentlicher String getName () {
Rückgabename ; _
}
public void setName ( Zeichenfolgenname ) { _
dies . name = name ;
}
öffentlicher boolescher getDeceased () {
kehren Sie verstorben zurück ;
}
public void setDeceased ( boolean verstorben ) {
dies . verstorben = verstorben ;
}
//Überschriebene equals()- und hashCode()-Methoden
@Überschreiben
public boolean equals ( Objekt o ) {
wenn ( dies == o ) {
gib wahr zurück ;
}
if ( o == null || getClass () != o . getClass ()) {
gebe falsch zurück ;
}
PersonBean that = ( PersonBean ) o ;
if ( verstorben != das . verstorben ) {
gebe falsch zurück ;
}
zurück ! ( name != null ? ! name . equals ( that . name ) : that . name != null );
}
@Überschreiben
öffentlicher int hashCode () {
int result = name != null ? Namen . HashCode ( ) : 0
Ergebnis = 31 * Ergebnis + ( verstorben ? 1 : 0 );
Ergebnis zurückgeben ;
}
//Überschriebene toString()-Methode
@Überschreiben
öffentlicher String toString () {
geben Sie "PersonBean{" + zurück
"name='" + name + '\'' +
", verstorben=" + verstorben +
'}' ;
}
}
// TestPersonBean.java
öffentliche Klasse TestPersonBean {
public static void main ( String [] args ) {
PersonBean person = new PersonBean ();
Person . setName ( "Bob" );
Person . setDeceased ( true );
// Ergebnis: "Bob [verstorben]"
System . aus . print ( person.getName ( ) );
System . aus . println ( person . getDeceased () ? " [verstorben]" : " [lebendig]" );
}
}
Notizen
- ↑ Die JavaBeans-Spezifikation ? . www.oracle.com . Abgerufen am 31. März 2021. Archiviert vom Original am 16. April 2021.