Enum的使用
在项目开发中经常会使用到枚举,下面将举个例子,展示枚举的使用,不说废话,直接上代码。
package com.tom.enumTest;
public enum StatusType {
A("FOOD","1"), B("CAR","2"), C("HOME","3");
private String label;
private String value;
/**
* @return the label
*/
public String getLabel() {
return label;
}
/**
* @param label the label to set
*/
public void setLabel(String label) {
this.label = label;
}
/**
* @return the value
*/
public String getValue() {
return value;
}
/**
* @param value the value to set
*/
public void setValue(String value) {
this.value = value;
}
private StatusType(String label, String value) {
this.label = label;
this.value = value;
}
public StatusType getStatusTypeByValue(String val) {
for (StatusType statusType : StatusType.values()) {
if (statusType.getValue().equals(val)) {
return statusType;
}
}
return null;
}
}
package com.tom.enumTest; import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List; public class TestForEnum {
private static final String GET_LABEL_METHOD = "getLabel";
public static <T extends Enum<T>> T translateByCode(final Class<T> clazz, final String code) {
if(code != null){
try {
final Method m = clazz.getDeclaredMethod(GET_LABEL_METHOD);
for (T t : inspectConstants(clazz)) {
if (code.equals(m.invoke(t))) {
return t;
}
}
} catch (Exception e) {
throw new RuntimeException(e);
}
}
return null;
}
public static <T extends Enum<T>> List<T> inspectConstants(final Class<T> clazz) {
return new ArrayList<T>(Arrays.asList(clazz.getEnumConstants()));
}
public static void main(String[] args) {
StatusType statusType = translateByCode(StatusType.class, "FOOD");
System.out.println(statusType.getLabel()+","+statusType.getValue());
}
}
public enum NumberEnum {
ONE("1","哈哈"),
TWO("2","嘿嘿"),
THREE("3","呵呵");
private String key;
private String value;
NumberEnum(String key,String value) {
this.key = key;
this.value = value;
}
public String getKey() {
return key;
}
public String getValue() {
return value;
}
public static NumberEnum getByKey(String key){
NumberEnum[] numEnum = NumberEnum.values();
for(NumberEnum dEnum : numEnum){
if(redEnum.getValue() == key){
return dEnum;
}
}
return null;
}
@Test
public void getIt4() {
Map<String,Object> map = new HashMap<String, Object>();
NumberEnum[] numEnum = NumberEnum.values();
if ( null != numEnum && numEnum.length >=0) {
for (NumberEnum nEnum : numEnum) {
map.put(nEnum.getKey(),nEnum.getValue());
}
}
System.out.println(map.size());
}
Enum的使用的更多相关文章
- Swift enum(枚举)使用范例
//: Playground - noun: a place where people can play import UIKit var str = "Hello, playground& ...
- 枚举:enum
枚举 所谓枚举就是指定好取值范围,所有内容只能从指定范围取得. 例如,想定义一个color类,他只能有RED,GREEN,BLUE三种植. 使用简单类完成颜色固定取值问题. 1,就是说,一个类只能完成 ...
- Asp.Net 将枚举类型(enum)绑定到ListControl(DropDownList)控件
在开发过程中一些状态的表示使用到枚举类型,那么如何将枚举类型直接绑定到ListControl(DropDownList)是本次的主题,废话不多说了,直接代码: 首先看工具类代码: /// <su ...
- 用枚举enum替代int常量
枚举的好处: 1. 类型安全性 2.使用方便性 public class EnumDemo { enum Color{ RED(3),BLUE(5),BLACK(8),YELLOW(13),GREEN ...
- The Java Enum: A Singleton Pattern [reproduced]
The singleton pattern restricts the instantiation of a class to one object. In Java, to enforce this ...
- c# (ENUM)枚举组合类型的谷歌序列化Protobuf
c# (ENUM)枚举组合类型的谷歌序列化Protobuf,必须在序列化/反序列化时加上下面: RuntimeTypeModel.Default[typeof(Alarm)].EnumPassthru ...
- (转)C# Enum,Int,String的互相转换 枚举转换
Enum为枚举提供基类,其基础类型可以是除 Char 外的任何整型.如果没有显式声明基础类型,则使用 Int32.编程语言通常提供语法来声明由一组已命名的常数和它们的值组成的枚举. 注意:枚举类型的基 ...
- set和enum类型的用法和区别
mysql中的set和enum类型的用法和区别 mysql中的enum和set其实都是string类型的而且只能在指定的集合里取值, 不同的是set可以取多个值,enum只能取一个值. 1 2 3 ...
- java enum
小谈Java Enum的多态性 博客分类: Java JavaAppleJDKJVMIDEA Enum+多态,我没说错,不过Enum是不可以被继承的,也不可以继承自别人,只是能实现接口而已,何谈多态 ...
- enum 与 enum class
c++11中引入了新的枚举类型---->强制枚举类型 // unscoped enum: enum [identifier] [: type] {enum-list}; // scoped e ...
随机推荐
- css -- 导航条
1.垂直导航条 HTML: <ul class="nav"> <li><a href="">Home</a>&l ...
- BeanShell用法汇总(部分摘抄至网络)【转】
说明:本文部分资料摘抄至 来源: http://www.cnblogs.com/puresoul/p/4915350.html 来源: http://www.cnblogs.com/puresoul/ ...
- wordpress修改上传文件大小限制
在为有的客户搭建 WordPress 网站时,有时会遇到因为所在的服务器限制了上传文件大小而无法上传较大的附件,WordPress的媒体文件上传可以看到,大多数都是2MB或者8MB.如果是图片的话可能 ...
- Bridge模式——对象结构型模式
今天看了Bridge模式,对其进行简单的总结,并给出几篇通俗易懂的文章链接. (一)意图--将抽象部分和它的实现部分分离,使它们都可以独立地变化. 适用于从多维度描述的类型,拆解开来,使其能沿着各维度 ...
- git的合并与推送
集中式合作模式 1.git fetch 获取远程更新 2.git merge origin/master 进行合并,如果报错,则相应解决.注:你得用git bash命令行执行才能看见报错详情,用ecl ...
- BZOJ2080 : [Poi2010]Railway
如果存在$k$使得$i<j<k$,且$a[k]<a[i]<a[j]$,那么$i$和$j$不能在一个栈中. 设$b[i]=\min(a[i..n])$,如果$b[j]<a[ ...
- Storm和JStorm(阿里的流处理框架)
本文导读: 1.What——JStorm是什么? 1.1 概述 .2优点 .3应用场景 .4JStorm架构 2.Why——为什么启动JStorm项目?(与storm的区别) .1storm的现状.缺 ...
- Javascript中括号“[]”的多义性
摘要:本文就是主要是分享JavaScript中括号的四种语义. Javascript中括号有四种语义 语义1,声明数组 var ary = []; // 声明一个空数组 var ary = [1,3] ...
- BZOJ2190 & 欧拉函数
题意: 求1-n内互质数对个数 SOL: 裸欧拉函数,还有莫比乌斯反演的加速什么的,挖个坑. Code: /*============================================= ...
- 自定义Toast、程序退出时Toast也退出、Toast的用法
http://blog.csdn.net/wangqilin8888/article/details/7464806 当我们在一个应用中用到Toaster来做为提示时,发现这样一个问题,当某个条件服合 ...