Enum类clone()方法
- clone() 方法可在
java.lang
包。 - clone() 方法用于保证枚举不能被克隆 ()(即我们不能复制枚举对象),这是维护属性的“单例”行为所必需的。
- clone() 方法是一个非静态方法,它只能通过类对象访问,如果我们尝试使用类名访问方法,那么我们将得到一个错误。
- clone() 方法是 final 方法,因此它在子类中不可覆盖。
- clone() 方法在不克隆枚举时可能会抛出异常
克隆不支持异常: 当对象类没有实现 Cloneable 接口时可能会抛出此异常,在这种情况下,如果子类覆盖 clone() 方法可能会抛出 CloneNotSupportedException 以表示无法复制或关闭实例。
用法:
protected Object clone();
参数:
- 它不接受任何参数。
返回值:
这个方法的返回类型是Object
,它什么都不返回。
例:
// Java program to demonstrate the example
// of Object clone() method of Enum
enum Weeks {
SUN,
MON,
TUE,
WED,
THU,
FRI,
SAT;
}
public class Clone {
public static void main(String args[]) throws CloneNotSupportedException {
System.out.println("Enum can't be cloned");
Clone cl = new Clone() {
protected final Object clone() throws CloneNotSupportedException {
return new CloneNotSupportedException();
}
};
System.out.println(cl.clone());
}
}
输出
Enum can't be cloned java.lang.CloneNotSupportedException
相关用法
- Java Enum compareTo()用法及代码示例
- Java Enum equals()用法及代码示例
- Java Enum toString()用法及代码示例
- Java Enum ordinal()用法及代码示例
- Java Enum valueOf()用法及代码示例
- Java Enum hashCode()用法及代码示例
- Java Enum finalize()用法及代码示例
- Java Enum name()用法及代码示例
- Java Enum getDeclaringClass()用法及代码示例
- Java EnumSet range()用法及代码示例
- Java EnumMap remove()用法及代码示例
- Java EnumMap hashCode()用法及代码示例
- Java EnumMap get()用法及代码示例
- Java EnumSet complementOf()用法及代码示例
- Java EnumSet clone()用法及代码示例
- Java EnumMap entrySet()用法及代码示例
- Java EnumMap containsKey()用法及代码示例
- Java EnumMap containsValue(value)用法及代码示例
- Java Enumeration asIterator()用法及代码示例
- Java EnumMap containsValue()用法及代码示例
注:本文由纯净天空筛选整理自Preeti Jain大神的英文原创作品 Java Enum clone() method with example。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。