Java中枚举类型Enum的一种使用方式
枚举类定义如下:
public enum Status {
SCUUESS("1", "成功"), FAILED("2", "失败");
private String value;
private String desc;
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
private Status(String value, String desc) {
this.value = value;
this.desc = desc;
}
}
使用方法:
public class StutusTest {
public static void main(String[] args) {
System.out.println(Status.SCUUESS.getValue());
System.out.println(Status.SCUUESS.getDesc());
System.out.println(Status.FAILED.getValue());
System.out.println(Status.FAILED.getDesc());
}
}

再比如,我们在操作数据库的时候,通常使用数字保存到数据库中,但是在界面上显示的时候,需要展示其中文意思,南无我们就可以通过下边的方式:
public enum FlightType {
OW(1, "单程"), RT(2, "往返");
public Integer code;
public String desc;
FlightType(Integer code, String desc) {
this.code = code;
this.desc = desc;
}
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
public static FlightType getTypeByCode(Integer code) {
FlightType defaultType = FlightType.OW;
for (FlightType ftype : FlightType.values()) {
if (ftype.code == code) {
return ftype;
}
}
return defaultType;
}
public static String getDescByCode(Integer code) {
return getTypeByCode(code).desc;
}
}
这样的话,我们就可以通过getDescByCode方法获得其对应的中文。
另外,参数的个数是可以进行变化的,例如下边:
public enum DatabaseType {
unknown(null, null, null,null),
mysql("com.mysql.jdbc.Driver", "com.mysql.jdbc.jdbc2.optional.MysqlXADataSource", "select 1",Dialect.MYSQL),
h2("org.h2.Driver", "org.h2.jdbcx.JdbcDataSource", "select 1",Dialect.H2),
oracle("oracle.jdbc.driver.OracleDriver", "oracle.jdbc.xa.client.OracleXADataSource", "select 1 from dual",Dialect.ORACLE);
DatabaseType(String driverClassName, String xaDataSourceClassName, String testQuery,Dialect dialect) {
this.driverClassName = driverClassName;
this.testQuery = testQuery;
this.xaDataSourceClassName = xaDataSourceClassName;
this.dialect=dialect;
}
private final String testQuery;
private final String driverClassName;
private final String xaDataSourceClassName;
private final Dialect dialect;
public String getDriverClassName() {
return driverClassName;
}
public String getXaDataSourceClassName() {
return xaDataSourceClassName;
}
public String getTestQuery() {
return testQuery;
}
public Dialect getDialect() {
return dialect;
}
public static DatabaseType fromJdbcUrl(String url) {
if (StringUtils.hasLength(url)) {
Assert.isTrue(url.startsWith("jdbc"), "URL must start with 'jdbc'");
String urlWithoutPrefix = url.substring("jdbc".length()).toLowerCase();
for (DatabaseType driver : values()) {
String prefix = ":" + driver.name().toLowerCase() + ":";
if (driver != unknown && urlWithoutPrefix.startsWith(prefix)) {
return driver;
}
}
}
return unknown;
}
}
public enum OrderFromSourceEnum implements EnumValue {
// 现在(重构后)订单的来源只有 3 开单这一种
PAY_RESERVE(1, "支付预约"),
DIRECT_RESERVE(2, "直接预约"),
BILL(3, "开单");
private int value;
private String name;
OrderFromSourceEnum(Integer value, String name) {
this.value = value;
this.name = name;
}
/**
* 按照Value获得枚举值
*/
public static OrderFromSourceEnum valueOf(Integer value) {
if (value != null) {
for (OrderFromSourceEnum fsEnum : OrderFromSourceEnum.values()) {
if (fsEnum.getValue() == value) {
return fsEnum;
}
}
}
return null;
}
@Override
public int getValue() {
return value;
}
@Override
public String getName() {
return name;
}
Java中枚举类型Enum的一种使用方式的更多相关文章
- 《挑战30天C++入门极限》新手入门:C/C++中枚举类型(enum)
新手入门:C/C++中枚举类型(enum) 如果一个变量你需要几种可能存在的值,那么就可以被定义成为枚举类型.之所以叫枚举就是说将变量或者叫对象可能存在的情况也可以说是可能的值一一例举出来. ...
- [转载] Java中枚举类型的使用 - enum
目录 1 枚举类的编译特性 2 向枚举类中添加方法 3 接口内部创建枚举 4 枚举类中使用枚举 5 扩展: 验证values()不是通过父类继承的 本文转载自博客 - Java枚举类型, 博主对原文内 ...
- Java中枚举类型与for、switch语句
1.枚举类型的声明 格式为: enum 枚举类型名{ 常量1,常量2,常量3 } 如: enum Number{ one,two,three,four,five //常量} 注意:enum内装的 ...
- java中枚举类型的使用
Java 枚举(enum) 详解7种常见的用法 JDK1.5引入了新的类型——枚举.在 Java 中它虽然算个“小”功能,却给我的开发带来了“大”方便. web项目里实体类使用枚举类型: 一般在该实体 ...
- (转+原创)java的枚举类型Enum解释
原文:http://www.cnblogs.com/mxmbk/articles/5091999.html 下文中还添加了个人的一些补充和理解. 在Java SE5之前,我们要使用枚举类型时,通常会使 ...
- .net MVC 中枚举类型Enum 转化成 下拉列表的数据源
第一次写技术博文,记录下工作中遇到的问题,给自己的知识做个备份,也希望能帮助到其他的同学 最近接手了公司的一个新的项目.有个页面涉及相关设计. 分享一个经常用到的吧. 方法一: 直入主题吧 我们的目的 ...
- Java中枚举类型简单学习
/* * enum类型不允许继承 * 除了这一点,我们基本上可以将enum看作一个常规的类 * 我们可以添加自己的方法与属性,我们也可以覆盖其中的方法. * 不过一定要在enum实例序列的最后添加分号 ...
- java中枚举(enum)小例子。之前学过枚举但是一直没用,这里有个枚举类帮你我理解下(很肤浅)
直接上枚举类,代码简单易懂. package com.jy.modules.cims.data.interact.tbj.loan.request; /** * * @author shengzhou ...
- java中进程与线程的三种实现方式
一:进程与线程 概述:几乎任何的操作系统都支持运行多个任务,通常一个任务就是一个程序,而一个程序就是一个进程.当一个进程运行时,内部可能包括多个顺序执行流,每个顺序执行流就是一个线程. 进程:进程是指 ...
随机推荐
- cocos2d-x2.2+win7+vs2010+python安装配置
个人网站http://www.ravedonut.com/ 1.安装vs2010 2.解压cocos2d-x,打开cocos2d-win32.vc2012.sln,编译,然后运行Hellocpp成功即 ...
- codevs-2235
2235 机票打折 题目描述 Description .输入机票原价(3到4位的正整数,单位:元),再输入机票打折率(小数点后最多一位数字).编程计算打折后机票的实际价格(单位:元.计算结果要将个位数 ...
- Flutter实战视频-移动电商-19.首页_火爆专区界面布局编写
19.首页_火爆专区界面布局编写 看一下图片的效果 一个标题栏,下面是多行两列.里面可以用column布局,外面用Warp流式布局 有得小伙伴说这里可以用网格布局,网格布局的话还是有一定的效率问题.这 ...
- 兼容主流浏览器的渐变颜色背景gradient的写法
/* Webkit: Safari 4-5, Chrome 1-9 */ background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#ff66 ...
- URAL1222
题意: 把n拆分成几个数,把这些数乘起来最大. 思路: 3越多越好. 对4,5特判一下,4的时候是2*2大,5的时候还剩个2,那么就是n%3=1的话,我们先拿个4,n%3==2的话就是先拿个2,后面把 ...
- Unity2016 Unity3D开发VR游戏的经验
http://z.youxiputao.com/articles/8313 在4月12日的Unite 2016大会上,暴风魔镜高级产品经理吴涛分享他用Unity3D开发VR游戏的经验,以下为分享实录: ...
- std::thread 在DLLMain 中会发生死锁 std::thread cause deadlock in DLLMain
注意不要再DLLMain中使用 std::thread 否则会发生死锁. 但是可以使用 _beginthreadex (此函数可以使用lambda) 或者直接使用windows的底层函数: Creat ...
- Xmind8 Pro 思维导图制作软件,傻瓜式安装激活教程
xmind 是做思维导图的软件?今天有一个以前的同事还在和我要这个软件,当然我支持正版啊 !因为正版好用! 我是一个不爱说废话的人,就顺便分享一下 给大家用! 软件下载地址: 链接:https://p ...
- 安装CocoaPods,ios的库安装工具
1.需要ruby环境,mac pro自带了 2.终端输入:sudo gem install cocoapods
- JSP && Servlet | 上传文件
在WebContent下新建index.jsp 要点: 1. 表单 method 属性应该设置为 POST 方法,不能使用 GET 方法. 2. 表单 enctype 属性应该设置为 multip ...