JavaBeans
- Serializable
- Default constructor
- Getter and setter methods for accessing properties
- Often encapsulate multiple objects, allowing them to be passed around as a single object
import java.beans.*;
Features
- Introspection - query how a bean works
- Persistence - state, serializable
- Properties - attributes with consistent getters and setters
- Events - generating and handling events
- Customization - appearance and behavior can be altered
Default constructor
public class ClassName {
public ClassName() {
}
}
Simple properties
public class ClassName {
private TYPE property;
public TYPE getProperty() {
return property;
}
public void setProperty(TYPE p) {
property = p;
}
}
- A boolean property can optionally have an
isProperty()method, rather than agetProperty()method.
Indexed properties
public class ClassName {
private TYPE[] property;
public TYPE getProperty(int index) {
return property[index];
}
public void setProperty(int index, TYPE p) {
property[index] = p;
}
public TYPE[] getProperty() {
return property;
}
public void setProperty(TYPE[] p) {
property = new TYPE[p.length];
System.arraycopy(p, 0, property, 0, p.length);
}
}
Serializable
- Automatic: Implement Serializable
public class ClassName implements java.io.Serializable {
}
- Selective: Exclude fields you do not want serialized by marking with the transient (or static) modifier
- Custom: Define one or both of the following methods:
private void writeObject(java.io.ObjectOutputStream out)
throws IOException;
private void readObject(java.io.ObjectInputStream in)
throws IOException, ClassNotFoundException;
- Writing Beans to a specific file format: implement Externalizable, and its two methods:
public void writeExternal(ObjectOutput out)
throws IOException;
public void readExternal(ObjectInput in)
throws IOException,
ClassNotFoundException
Methods used by event listeners
public synchronized void addMyListener(MyListener listener); public synchronized void removeMyListener(MyListener listener);
- An alternate method can be added for Beans that can only have a single listener:
public synchronized void addMyListener(MyListener listener)
throws TooManyListeners;
Enterprise JavaBeans (EJB)
- Server-side JavaBeans
import javax.ejb.*; import javax.ejb.spi.*;
Resources URL:
notes/java/resources
Sources URL:
notes/java/sources