枚举类型的创建
public enum NameOfEnum{
FIELD1,FIELD2,.....
}
由于enum自身是一个class所以它也有构造函数
public enum ResourcesType implements IEnum{
FOLDER("FOLDER", "目录,文件夹"),FILE("FILE", "文件"),MENU("MENU", "菜单"), URL("URL", "统一资源定位符(URL)"), FUNCTION("FUNCTION", "函数");
private String code;
private String text;
private ResourcesType(String code, String text) {
this.code = code;
this.text = text;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
}
Note:enum的构造函数为private 而且这个构造函数的调用只是在创建内部值时才调用 外部不得调用
也就是说其实enum内的值时enum自身的instance而且为public static final 类型
Enum中的方法:(复制于API)
protected Object | clone() Throws CloneNotSupportedException. | |
int | compareTo(E o) Compares this enum with the specified object for order. | |
boolean | equals(Object other) Returns true if the specified object is equal to this enum constant. | |
Class<E> | getDeclaringClass() Returns the Class object corresponding to this enum constant's enum type. | |
int | hashCode() Returns a hash code for this enum constant. | |
String | name() Returns the name of this enum constant, exactly as declared in its enum declaration. | |
int | ordinal() Returns the ordinal of this enumeration constant (its position in its enum declaration, where the initial constant is assigned an ordinal of zero). | |
String | toString() Returns the name of this enum constant, as contained in the declaration. | |
static
| valueOf(Class<T> enumType, String name) Returns the enum constant of the specified enum type with the specified name. |
上面的那些方法都很容易理解 唯一的有点让人费解的方法是values()因为找不到出处 在Api中Enum中没这个方法 但是它又是存在的
而且查资料显示
其实enum,class,interface均是java.lang.annotation.ElementType的type
TYPE
public static final ElementType TYPE
- Class, interface (including annotation type), or enum declaration
所以enum的values()方法来至此处