enum类的常用方法用例解释,直接看代码:
import static com.think.util.Print.*; //静态导入 直接调用该变量或方法 无需该类名
enum Shrubbery { GROUND, CRAWLING, HANGING }
/*
*
* @ClassName: EnumClass
* @Description: 枚举类的基本属性的用法
* @author hejun
* @date 2017年6月2日 上午10:04:05
*/
public class EnumClass {
public static void main(String[] args) {
//values()方法是由编译器添加的static方法 返回enum实例数组T[]
for(Shrubbery s : Shrubbery.values()) {
//ordinal()返回该实例在enum中的申明次序 返回类型int
print(s + " ordinal: " + s.ordinal());
//compareTo(Object obj) 比较这个枚举与指定对象的顺序 返回类型int
printnb(s.compareTo(Shrubbery.CRAWLING) + " ");
//equals()方法比较两个对象是否相等 返回类型boolean
printnb(s.equals(Shrubbery.CRAWLING) + " ");
print(s == Shrubbery.CRAWLING);
//getDeclaringClass()是class类的方法 返回该类对象的申明类 返回类型:类<?>
print(s.getDeclaringClass());
print(s.name());
print("----------------------");
}
// Produce an enum value from a string name:
for(String s : "HANGING CRAWLING GROUND".split(" ")) {
//valueOf(类<T> enumType,String name)返回指定枚举类型的枚举常量指定名称
Shrubbery shrub = Enum.valueOf(Shrubbery.class, s);
print(shrub);
}
}
}
用例中的打印方法是静态导入,详情和代码可以查看java中静态导入博客篇。
运行结果:
GROUND ordinal: 0
-1 false false
class com.think.enumdemo.Shrubbery
GROUND
----------------------
CRAWLING ordinal: 1
0 true true
class com.think.enumdemo.Shrubbery
CRAWLING
----------------------
HANGING ordinal: 2
1 false false
class com.think.enumdemo.Shrubbery
HANGING
----------------------
HANGING
CRAWLING
GROUND