一、定义enum抽象类
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
public class AbstractEnum {
private static final Map<String, AbstractEnum> nameEnumMap = new ConcurrentHashMap<>();
@Getter
protected String name;
protected AbstractEnum () {
}
protected AbstractEnum(String name) {
this .name = name;
if (!nameEnumMap.containsKey(name)) {
nameEnumMap.put(name, this );
}
}
public boolean equals(AbstractEnum abstractEnum) {
return this .name == null || abstractEnum == null ? false : this .name.equals(abstractEnum.getName());
}
public String toString() {
return this .name;
}
public static AbstractEnum valueOf(String name) {
if (name == null )
throw new NullPointerException( "Name is null" );
AbstractEnum result = nameEnumMap.get(name);
if (result != null ) {
return result;
}
throw new IllegalArgumentException(
"No enum constant exists, name is." + name);
}
public static void init() {
}
}
|
二、实际继承enum,与enum使用方法一致
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
public class TypeEnum extends AbstractEnum {
private static final Map<String, TypeEnum> nameEnumMap = new ConcurrentHashMap<>();
protected TypeEnum(String name) {
super (name);
if (!nameEnumMap.containsKey(name)) {
nameEnumMap.put(name, this );
}
}
public static TypeEnum valueOf(String name) {
if (name == null )
throw new NullPointerException( "Name is null" );
TypeEnum result = nameEnumMap.get(name);
if (result != null ) {
return result;
}
throw new IllegalArgumentException(
"No enum constant exists, name is." + name);
}
public static final TypeEnum TYPE_ONE = new TypeEnum( "TYPE_ONE" );
}
|
三、可继续继承枚举,进行枚举分类。
补充:Java中自定义枚举(Enum)项的值,可设置为指定的值
一、代码
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
package base.lang;
/**
* ClassName: StateEnum
* @Description: TODO
* @author fuming
* @date 2016年11月27日
*/
public enum StateEnum
{
//添加枚举的指定常量
online( 10 ),
offline( 20 );
//必须增加一个构造函数,变量,得到该变量的值
private int mState= 0 ;
private StateEnum( int value)
{
mState=value;
}
/**
* @return 枚举变量实际返回值
*/
public int getState()
{
return mState;
}
}
|
二、示例
?
1
2
3
4
|
//enum
StateEnum orderState=StateEnum.offline;
//orderState=StateEnum.online;
System.out.println( "state=" + orderState.getState());
|
三、打印结果
?
1
|
state= 20 //测试正常
|
以上为个人经验,希望能给大家一个参考,也希望大家多多支持快网idc。如有错误或未考虑完全的地方,望不吝赐教。
原文链接:https://blog.csdn.net/jiangxuexuanshuang/article/details/87911048
相关文章
猜你喜欢
- 64M VPS建站:如何选择最适合的网站建设平台? 2025-06-10
- ASP.NET本地开发时常见的配置错误及解决方法? 2025-06-10
- ASP.NET自助建站系统的数据库备份与恢复操作指南 2025-06-10
- 个人网站服务器域名解析设置指南:从购买到绑定全流程 2025-06-10
- 个人网站搭建:如何挑选具有弹性扩展能力的服务器? 2025-06-10
TA的动态
- 2025-07-10 怎样使用阿里云的安全工具进行服务器漏洞扫描和修复?
- 2025-07-10 怎样使用命令行工具优化Linux云服务器的Ping性能?
- 2025-07-10 怎样使用Xshell连接华为云服务器,实现高效远程管理?
- 2025-07-10 怎样利用云服务器D盘搭建稳定、高效的网站托管环境?
- 2025-07-10 怎样使用阿里云的安全组功能来增强服务器防火墙的安全性?
快网idc优惠网
QQ交流群
您的支持,是我们最大的动力!
热门文章
-
2025-05-25 27
-
php array_walk array_map array_filter区别案例详解
2025-05-29 18 -
2025-06-05 97
-
2025-05-29 68
-
2025-06-05 103
热门评论