想知道的是能不能像C语言里面一样给枚举的成员赋值?
例如:
public enum Name
{
NAME1 = 1,
NAME2 = 2
}
thanks in advance!
可以赋值
例如:
public enum Temp {
demojava1(-459), demojava2(32),demojava3(212), demojava4(451);
private final int value;
public int getValue() {
return value;
}
//构造器默认也只能是private, 从而保证构造函数只能在内部使用
Temp(int value) {
this.value = value;
}
}
有一点需要知道的是:
/*通过括号赋值,而且必须有带参构造器和一属性跟方法,否则编译出错
* 赋值必须是都赋值或都不赋值,不能一部分赋值一部分不赋值
* 如果不赋值则不能写构造器,赋值编译也出错*/
[code="java"]
package com.lucene;
public enum Demo {
FRANK("The given name of me"),
LIU("The family name of me");
private String context;
private String getContext(){
return this.context;
}
private Demo(String context){
this.context = context;
}
public static void main(String[] args){
for(Demo name :Demo.values()){
System.out.println(name+" : "+name.getContext());
}
System.out.println(Demo.FRANK.getDeclaringClass());
}
}
[/code]
希望能帮到你,
你NAME1,NAME2本来在ENUM里面本来就是静态常量了,是不能被赋值的。
亲,这个帖子是一个enum的例子,java的enum是很强大滴