## org.opengis.util
Interface Cloneable

All Superinterfaces:
  Cloneable

All Known Subinterfaces:
  DirectPosition, GeneralParameterValue, GraphicStyle, GridCoordinates, GridEnvelope, LineSymbolizer, Matrix, ParameterValue<T>, ParameterValueGroup, PointSymbolizer, PolygonSymbolizer, TextSymbolizer

    public interface Cloneable

extends Cloneable

Indicates that it is legal to make a field-for-field copy of instances of implementing classes. A cloneable class implements the J2SE's `Cloneable` standard interface and additionnaly overrides the `Object.clone()` method with public access.

Because the `Object.clone()` method has protected access, containers wanting to clone theirs elements need to 1) use Java reflection (which is less efficient than standard method calls), or 2) cast every elements to a specific type like `Date` (which may require a large amount of "`if (x instanceof y)`" checks if arbitrary classes are allowed). This `Cloneable` interface had a third alternative: checks only for this interface instead of a list of particular cases.

Implementors of cloneable classes may consider implementing this interface, but this is not mandatory. A large amount of independant classes like `Date` will continue to ignore this interface, so no rule can be enforced anyway. However this interface may help the work of containers in some case. For example a container may checks for this interface first, and uses Java reflection as a fallback.

Since:
  GeoAPI 1.0
See Also:
  `Cloneable`, "Cloneable doesn't define `clone()`" on Sun's bug parade

Method Summary
`Object` `clone()` Creates and returns a copy of this object.

Method Detail

### clone

    Object clone()

  Creates and returns a copy of this object. The precise meaning of "copy" may depend on the class of the object.

  See Also:
    `Object.clone()`

Copyright © 1994-2008 Open Geospatial Consortium. All Rights Reserved.