public enum Operations {
SINGLE,
MULTIPLE;
private Type operation;
public void setOperation(Type operation) {
this.operation = operation;
}
public Type getOperation() {
return operation;
}
public static void main(String[] args) {
Operations oper1 = Operations.SINGLE;
oper1.setOperation(Type.GET);
Operations oper2 = Operations.SINGLE;
oper2.setOperation(Type.POST);
System.out.println(oper1.getOperation());
System.out.println(oper2.getOperation());
}
}
enum Type {
POST,
GET;
}
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,两个操作的操作值都会发生变化.如何使用不同操作类型的两个Operations.SINGLE实例?
Eri*_*low 16
是的,情况是含蓄static
和final
.这意味着代码是不明智的.想象两个线程都在呼叫SINGLE.setOperation(Type)
; 你对你所说的话毫无信心.
枚举类型(第8.9节)不得声明为抽象; 这样做会导致编译时错误.
枚举类型是隐式final的,除非它包含至少一个具有类主体的枚举常量.
将枚举类型显式声明为final是一个编译时错误.
嵌套枚举类型是隐式静态的.允许将嵌套的枚举类型显式声明为静态.
在下一节中:
枚举类型的主体可能包含枚举常量.枚举常量定义枚举类型的实例.
因为每个枚举常量只有一个实例,所以当比较两个对象引用时,允许使用==运算符代替equals方法,如果已知它们中至少有一个引用枚举常量.
das*_*ght 11
如何使用不同操作类型的两个Operations.SINGLE实例?
背后的基本思想enum
是每个成员都有一个且只有一个实例.这使得您可以安全地比较它们的平等性,而不必担心其他地方SINGLE
或MULTIPLE
在其他地方创建.
如果你想要多个实例SINGLE
,请将其设为a class
,而不是a enum
.你使你的enum
可变性间接指向同一方向的事实:enum
在你的情况下使用是一个错误的选择.
归档时间: |
|
查看次数: |
16577 次 |
最近记录: |