@Retention(value=RUNTIME)
@Target(value={CONSTRUCTOR,METHOD})
@Documented
public @interface Cloner
This annotation can be applied to a method or constructor to indicate that it can be used to clone a particular type.
A Constructor with this annotation must take a single argument that must be the same type or a supertype of the type
to be cloned.
A Method with this annotation may be either a static method that returns an instance of the exact same type and takes
an instance of the same type or one of its supertypes as a parameter, or it may be an instance method that returns an
instance of the same type and has no parameters.