Java枚举类使用和总结
1、枚举类使用情况一:
package com.bie.util; import java.util.HashMap;
import java.util.Map; /**
*
* @author biehl
*
* @date 2018年8月2日上午9:18:16
*
* @Notes 枚举,返回登陆结果案例
*
*/
public enum LoginResult { LOGIN_SUCCESS(, "登陆成功"),
LOGIN_FAILED(, "登陆失败"),
LOGIN_ACCOUNT_NO(, "登陆账号不存在"),
LOGIN_ACCOUNT_ERROR(, "登陆账号错误"),
LOGIN_PASSWORD_ERROR(, "登陆密码错误"); private int type;//类型
private String desc;//描述
//构造方法,决定了上面枚举的字段
private LoginResult(int type, String desc) {
this.type = type;
this.desc = desc;
} public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
} /**
* 根据type获取到描述desc
* @param type
* @return
*/
public static String getResultDescByType(int type){
//获取到枚举
LoginResult[] values = LoginResult.values();
//加强for循环进行遍历操作
for(LoginResult lr : values){
//如果遍历获取的type和参数type一致
if(lr.getType() == type){
//返回type对象的desc
return lr.getDesc();
}
}
return null;
} /**
* 根据type获取到对应的enum
* @param type
* @return
*/
public static LoginResult getResultEnumByType(int type){
//获取到枚举
LoginResult[] values = LoginResult.values();
for(LoginResult lr : values){
if(lr.getType() == type){
return lr;
}
}
return null;
} /**
* getChoiceMap
* @return
*/
public static Map<Integer, String> getChoiceMap(){
Map<Integer, String> map = new HashMap<Integer, String>();
for(LoginResult lr : LoginResult.values()){
map.put(lr.getType(), lr.getDesc());
}
return map;
} public static void main(String[] args) {
//根据type获取到对应的desc
//运行结果:登陆成功
//System.out.println(LoginResult.getResultDescByType(0)); //可以根据type获取到对应的enum枚举
//运行结果:LOGIN_SUCCESS
System.out.println(LoginResult.getResultEnumByType()); //将type和desc封装到map集合里面
//运行效果:{0=登陆成功, 1=登陆失败, 2=登陆账号不存在, 3=登陆账号错误, 4=登陆密码错误}
//System.out.println(LoginResult.getChoiceMap());
} }
2、枚举类使用情况二:
package com.bie.util; /**
*
* @author biehl
*
* @date 2018年8月2日下午3:38:28
*
* @Notes REGISTER("注册"),这种类型的枚举可以使用在调用此枚举类然后使用switch来匹配到对应的方法
*
*/
public enum OperatorType { REGISTER("注册"),
LOGIN("登陆"),
INSERT("增加"),
DELETE("删除"),
UPDATE("修改"),
SELECT("查询"),
; //构造方法
private OperatorType(String desc){
this.desc = desc;
} private String desc;//描述 public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
} /**
* 根据desc获取到enum
* @param desc
* @return
*/
public static OperatorType getResultEnumByDesc(String desc){
OperatorType[] values = OperatorType.values();
for(OperatorType ot : values){
if(ot.getDesc() == desc){
return ot;
}
}
return null;
} public static void main(String[] args) {
//根据desc获取到enum
//结果:DELETE
System.out.println(OperatorType.getResultEnumByDesc("删除")); } }
3、枚举类使用情况三:
package com.bie.util; import java.util.HashMap;
import java.util.Map; public enum GroupEnum { GROUP_ONE(,"group_one","一组"),
GROUP_TWO(,"group_two","二组"),
GROUP_THREE(,"group_three","三组"),
GROUP_FOUR(,"group_four","四组"),
GROUP_FIVE(,"group_five","五组"),
GROUP_SIX(,"group_six","六组"),
GROUP_SENVEN(,"group_senven","七组"),
; private GroupEnum(int id, String type, String desc) {
this.id = id;
this.type = type;
this.desc = desc;
} private int id;
private String type;
private String desc; public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
} /**
* 根据type获取到对应的enum
* @param type
* @return
*/
public static GroupEnum getResultEnumByType(String type){
GroupEnum[] values = GroupEnum.values();
for(GroupEnum ge : values){
if(ge.getType() == type){
return ge;
}
}
return null;
} /**
* 根据type获取到对应的desc
* @param type
* @return
*/
public static String getResltDescByType(String type){
GroupEnum[] values = GroupEnum.values();
for(GroupEnum ge : values){
if(ge.getType() == type){
return ge.getDesc();
}
}
return null;
} /**
* 获取到封装的type和desc
* @return
*/
public static Map<String, String> getChoiceMap(){
Map<String, String> map = new HashMap<String, String>();
for(GroupEnum ge : GroupEnum.values()){
map.put(ge.getType(), ge.getDesc());
}
return map;
} public static void main(String[] args) {
//根据参数2,type获取到对应的enum
//运行结果:GROUP_ONE
//System.out.println(GroupEnum.getResultEnumByType("group_one")); //根据type获取到对应的desc
//运行结果:一组
//System.out.println(GroupEnum.getResltDescByType("group_one")); //获取到封装好的type和desc
//运行结果:{group_senven=七组, group_six=六组, group_one=一组, group_five=五组, group_three=三组, group_two=二组, group_four=四组}
System.out.println(GroupEnum.getChoiceMap());
} }
待续.......
Java枚举类使用和总结的更多相关文章
- Java枚举类在生产环境中的使用方式
前言 Java枚举在项目中使用非常普遍,许多人在做项目时,一定会遇到要维护某些业务场景状态的时候,往往会定义一个常量类,然后添加业务场景相关的状态常量.但实际上,生产环境的项目中业务状态的定义大部 ...
- Java 枚举类
如果要定义一个枚举类: public enum Size { SAMLL, MEDIUM, LARGE, EXTRA, EXTRA_LARGE}; 实际上,这个声明定义的类型是一个类,它刚好有4个实例 ...
- java 枚举类 enum 总结
枚举定义: enum是计算机编程语言中的一种数据类型.枚举类型:在实际问题中,有些变量的取值被限定在一个有限的范围内.例如,一个星期内只有七天,一年只有十二个月,一个班每周有六门课程等等.如果把这些量 ...
- java 枚举类小结 Enum
好久没有接触枚举类了,差不多都忘了,今天抽出个时间总结一下吧.说实话,枚举类确实能够给我们带来很大的方便. 说明:枚举类它约定了一个范围,可以理解成只可以生成固定的几个对象让外界去调用,故枚举类中的构 ...
- java枚举类
enum关键字用于定义枚举类,若枚举只有一个成员, 则可以作为一种单例模式的实现方式. 枚举类对象的属性不应允许被改动, 所以应该使用 private final 修饰. 枚举类的使用 priva ...
- 【JAVA】浅谈java枚举类
一.什么情况下使用枚举类? 有的时候一个类的对象是有限且固定的,这种情况下我们使用枚举类就比较方便? 二.为什么不用静态常量来替代枚举类呢? public static final int SEASO ...
- Java枚举类enum
枚举类enum是JDK1.5引入的,之前都是用public static final int enum_value来代替枚举类的.枚举类enum是一种特殊的类,它默认继承了类java.lang.Enu ...
- java枚举类(enum) 基础知识讲解
枚举类是在java 5后新增的,可以用于封装常量,并且还可以为常量的使用提供一些方法. 定义枚举类的语法: public enum EnumName{ 成员1(A,B...),成员2(A,B...), ...
- Java枚举类使用
用法一:常量 在JDK1.5 之前,我们定义常量都是: public static fianl.... .现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法. p ...
- Java 枚举类详解
1. 枚举类定义 在某些情况下,一个类的对象是有限而且固定的,比如季节类,它只有4个对象,这种实例有限而且固定的类,在Java里被称为枚举类. 2. 早期实现枚举的方式 public static f ...
随机推荐
- MySQL软件基本管理
1. 忘记密码 windows平台下,5.6.43版本mysql # 关闭mysql # 在cmd中执行:mysqld --skip-grant-tables # 在cmd中执行:mysql # 执行 ...
- 国产 WEB UI 框架 (收费)-- Quick UI,Mini UI
国产 WEB UI 框架 (收费)-- Quick UI,Mini UI : http://www.uileader.com/ http://www.miniui.com/
- aix安装nmon
aix5310以上都系统自带了nmon,其他低版本需要手动安装 软件包下载地址https://www.ibm.com/developerworks/community/wikis/home?lang= ...
- Django-jinjia2的赋值
一 变量 1. 变量的形式是:{{ variable }},当模板引擎碰到变量时,引擎使用变量的值替代变量: 2. 使用“.”能够访问变量的属性: 3. 当模板引擎碰到“.”的时候,查找顺序是: a) ...
- less个人学习笔记
less中文官网:http://lesscss.cn/ . http://www.bootcss.com/p/lesscss/ Busy 视频教程:http://www.imooc.com/learn ...
- $Django patch与put,视图组件,路由控制,响应器
1 patch与put(幂等?回顾) PATCH 与 PUT 属性上的一个重要区别还在于:PUT 是幂等的,而 PATCH 不是幂等的.幂等是一个数学和计算机学概念,在计算机范畴内表示一个操作执行任意 ...
- FreeSWITCH异常原因总结
最经在玩FreeSWITCH的时候,遇到很多的问题,特此总结一下,希望以后不要犯类似的错误了: 1.Client端无法注册,但是FS运行正常? 解决办法:查看防火墙是否关闭./etc/init.d/i ...
- 常用的ORM框架
现在,很多项目使用ORM的框架构架实现数据持久层,下面列举一些常用的ORM框架有,后续分节介绍. Java:Hibernate和Mybatis(前身iBatis) .Net:EF6与EFCore.Da ...
- 用layui前端框架弹出form表单以及提交
第一步:引用两个文件 第二步:点击删除按钮弹出提示框 /*删除开始*/ $(".del").click(function () { var id = $(this).attr(&q ...
- swift 实践- 01 -- UItableView的简单使用
import UIKit class ViewController: UIViewController ,UITableViewDelegate,UITableViewDataSource{ over ...