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枚举类使用和总结的更多相关文章

  1. Java枚举类在生产环境中的使用方式

    前言   Java枚举在项目中使用非常普遍,许多人在做项目时,一定会遇到要维护某些业务场景状态的时候,往往会定义一个常量类,然后添加业务场景相关的状态常量.但实际上,生产环境的项目中业务状态的定义大部 ...

  2. Java 枚举类

    如果要定义一个枚举类: public enum Size { SAMLL, MEDIUM, LARGE, EXTRA, EXTRA_LARGE}; 实际上,这个声明定义的类型是一个类,它刚好有4个实例 ...

  3. java 枚举类 enum 总结

    枚举定义: enum是计算机编程语言中的一种数据类型.枚举类型:在实际问题中,有些变量的取值被限定在一个有限的范围内.例如,一个星期内只有七天,一年只有十二个月,一个班每周有六门课程等等.如果把这些量 ...

  4. java 枚举类小结 Enum

    好久没有接触枚举类了,差不多都忘了,今天抽出个时间总结一下吧.说实话,枚举类确实能够给我们带来很大的方便. 说明:枚举类它约定了一个范围,可以理解成只可以生成固定的几个对象让外界去调用,故枚举类中的构 ...

  5. java枚举类

    enum关键字用于定义枚举类,若枚举只有一个成员, 则可以作为一种单例模式的实现方式.   枚举类对象的属性不应允许被改动, 所以应该使用 private final 修饰. 枚举类的使用 priva ...

  6. 【JAVA】浅谈java枚举类

    一.什么情况下使用枚举类? 有的时候一个类的对象是有限且固定的,这种情况下我们使用枚举类就比较方便? 二.为什么不用静态常量来替代枚举类呢? public static final int SEASO ...

  7. Java枚举类enum

    枚举类enum是JDK1.5引入的,之前都是用public static final int enum_value来代替枚举类的.枚举类enum是一种特殊的类,它默认继承了类java.lang.Enu ...

  8. java枚举类(enum) 基础知识讲解

    枚举类是在java 5后新增的,可以用于封装常量,并且还可以为常量的使用提供一些方法. 定义枚举类的语法: public enum EnumName{ 成员1(A,B...),成员2(A,B...), ...

  9. Java枚举类使用

    用法一:常量 在JDK1.5 之前,我们定义常量都是: public static fianl.... .现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法. p ...

  10. Java 枚举类详解

    1. 枚举类定义 在某些情况下,一个类的对象是有限而且固定的,比如季节类,它只有4个对象,这种实例有限而且固定的类,在Java里被称为枚举类. 2. 早期实现枚举的方式 public static f ...

随机推荐

  1. 机器学习与AI相关的资料

    机器学习与AI相关的资料: 1. http://www.fast.ai/    基础学习 2.http://geek.ai100.com.cn/  中文 3.http://geek.ai100.com ...

  2. 析构函数中的virtual是否必要?

    我们经常听到建议要把构造函数不能为虚,析构函数最好为虚,这是为什么? 如下例子: // pvtable1.cpp : 定义控制台应用程序的入口点. #include "stdafx.h&qu ...

  3. mysql数据库基于linux的安装步骤及数据库操作

    一.数据库安装 Ubuntu上安装MySQL非常简单只需要几条命令就可以完成. sudo apt-get install mysql-server sudo apt-get isntall mysql ...

  4. Navicat for MySQL连接mysql数据库时提示错误:Can't connect to MySQL server (10060)

    导致些问题可能有以下几个原因: 1.网络不通: 2.服务未启动: 3.防火墙端口未开放: a)首先确认mysql配置正确,并正确开启 service mysqld start; 设置mysql远程连接 ...

  5. 033_linux操作系统火焰图探测系统性能

    火焰图是定位疑难杂症的神器,比如 CPU 占用高.内存泄漏等问题.特别是 Lua 级别的火焰图,可以定位到函数和代码级别. 一.研究 https://moonbingbing.gitbooks.io/ ...

  6. 缓存系列之四:redis持久化与redis主从复制

    一:redis 虽然是一个内存级别的缓存程序,即redis 是使用内存进行数据的缓存的,但是其可以将内存的数据按照一定的策略保存到硬盘上,从而实现数据持久保存的目的,redis支持两种不同方式的数据持 ...

  7. 使用tomcat发布含有shtml文件的web程序

    平常都是使用html或jsp,当导入含有shtml的一个web项目时,向平常一样使用Jetty运行,访问到shtml文件时,直接在浏览器上显示出了源码. 查询,使用tomcat发布,修改tomcat的 ...

  8. Linux VPS基础命令 - cp复制文件命令

    cp命令在Linux VPS操作和应用过程中还是比较常用的,我们可以用来复制文件或者文件夹,重命名一个新的文件以及复制到其他路径中用于文件的转移. 举例用法: 1.复制root目录下的itbulu.c ...

  9. MySQL数据库的各种存储引擎详解

    原文来自:MySQL数据库的各种存储引擎详解   MySQL有多种存储引擎,每种存储引擎有各自的优缺点,大家可以择优选择使用: MyISAM.InnoDB.MERGE.MEMORY(HEAP).BDB ...

  10. Codeforces 1091E New Year and the Acquaintance Estimation [图论]

    洛谷 Codeforces 思路 有一个定理:Erdős–Gallai定理. 然后观察样例,可以猜到答案必定是奇偶性相同的一段区间,那么二分左右端点即可. 定理和这个猜测暂时都懒得学/证,留坑. #i ...