|
J avolution v5.2 (J2SE 1.5+) | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface Immutable
This interface identifies classes whose instances are not subject or susceptible to change or variation after creation. Once a class is declared immutable, any subclass must ensure immutability as well.
Immutable
objects can safely be used in a multi-threaded
environment and do not require defensive copying.
For example:
class Polygon implements Immutable {
private List<Point2D> _vertices;
public Polygon(List<Point2D> vertices) {
_vertices = (vertices instanceof Immutable) ?
vertices : // Safe, the vertices cannot be modified by the client.
new FastTable<Point2D>(vertices); // Defensive copying required.
}
}
|
J avolution v5.2 (J2SE 1.5+) | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |