java 枚举 类型
来源:互联网 发布:淘宝站外营销 编辑:程序博客网 时间:2024/06/07 22:15
创建枚举类型要使用enum关键字,隐含了所创建的类型都是java.lang.Enum类的子类(java.lang.Enum 是一个抽象类)。枚举类型符合通用模式Class Enum<E extends Enum <E>> 而E标识枚举类型的名称。枚举的每一个人值都将映像到protected Enum(String name,int ordinal)构造函数中。在这里每个值的名称都会被转化为一个字符串,并且序数设置表示了次设置被创建的顺序。
package
com.hmw.test;
/**
* 枚举测试类
* @author <a href="mailto:hemingwang0902@126.com">何明旺</a>
*/
public
enum
EnumTest {
MON, TUE, WED, THU, FRI, SAT, SUN;
}
这段代码实际上调用了7次 Enum(String name, int ordinal):
new
Enum<EnumTest>(
"MON"
,
0
);
new
Enum<EnumTest>(
"TUE"
,
1
);
new
Enum<EnumTest>(
"WED"
,
2
);
public
class
Test {
public
static
void
main(String[] args) {
for
(EnumTest e : EnumTest.values()) {
System.out.println(e.toString());
}
System.out.println(
"----------------我是分隔线---------------"
);
EnumTest test = EnumTest.TUE;
switch
(test) {
case
MON:
System.out.println(
"今天是星期一"
);
break
;
case
TUE:
System.out.println(
"今天是星期二"
);
break
;
// ... ...
default
:
System.out.println(test);
break
;
}
}
}
MON
TUE
WED
THU
FRI
SAT
SUN
----------------我是分隔线------------------
今天是星期二
public
class
Test {
public
static
void
main(String[] args) {
EnumTest test = EnumTest.TUE;
//compareTo(E o)
switch
(test.compareTo(EnumTest.MON)) {
case
-
1
:
System.out.println(
"TUE 在 MON 之前"
);
break
;
case
1
:
System.out.println(
"TUE 在 MON 之后"
);
break
;
default
:
System.out.println(
"TUE 与 MON 在同一位置"
);
break
;
}
//getDeclaringClass()
System.out.println(
"getDeclaringClass(): "
+ test.getDeclaringClass().getName());
//name() 和 toString()
System.out.println(
"name(): "
+ test.name());
System.out.println(
"toString(): "
+ test.toString());
//ordinal(), 返回值是从 0 开始
System.out.println(
"ordinal(): "
+ test.ordinal());
}
}
TUE 在 MON 之后
getDeclaringClass(): com.hmw.test.EnumTest
name(): TUE
toString(): TUE
ordinal(): 1
/** 新建 */
create("create1"),
/** 变更 */
modify("create2");
private String test;
private ApplyType(String test) {
this.test = test;
}
@Override
public String toString() {
return String.valueOf(this.test);
}
}
public static void main(String args[]) {
for (ApplyType s : ApplyType.values()) {
System.out.println(s.name());
System.out.println(s.ordinal());
System.out.println(ApplyType.create);
System.out.println(s);
}
System.out.println(ApplyType.valueOf(ApplyType.class, "create"));
System.out.println(BooleanEnum.valueOf(0).name());
System.out.println(ApplyType.values());
System.out.println(ApplyType.valueOf("create").ordinal());
}
结果:create
0
create1
create1
modify
1
create1
create2
create1
否
[Lcom.hd123.hdpos4.mdata.service.game.ApplyType;@4f531f73
0
EnumSet,EnumMap的应用
参考文献
https://www.cnblogs.com/hyl8218/p/5088287.html
http://blog.csdn.net/wgw335363240/article/details/6359614
- 【Java】JAVA枚举类型
- Java enum 枚举类型
- java枚举类型
- JAVA枚举类型
- JAVA枚举类型Enum
- Java中的枚举类型
- 简述java枚举类型
- java枚举类型入门
- JAVA枚举类型
- java 枚举类型
- Java之枚举类型
- Java枚举类型
- java枚举类型
- JAVA枚举类型学习心得
- 理解java枚举类型
- java 枚举类型
- 理解java枚举类型
- [Java] enum 枚举类型
- 文章标题
- 利用mybatis-generator自动生成代码
- ZOJ Problem Set
- javaEE从数据库中取数据的坑
- 自定义ViewGroup与view 的基本用法与特性
- java 枚举 类型
- 如何解决oracle数据库监听器启动后,马上自动关闭问题?
- 习题6.17
- 输入成绩比大小
- yii2用表单上传文件经常用到的
- 命名空间的使用方法及作用
- 离散傅里叶
- 722. Remove Comments
- 数组参数和指针参数分析