Java enum
来源:互联网 发布:台湾2016进出口数据 编辑:程序博客网 时间:2024/06/03 10:43
</pre><p><span style="font-size:24px">java :</span></p><p></p><pre code_snippet_id="1921703" snippet_file_name="blog_20161010_2_5805003" name="code" class="html"><span style="font-size:14px;">package com.xf.allEnum;import com.xf.util.EnumUtil;import com.xf.util.GeneralEnum;public enum TeacherTypeEnum implements GeneralEnum<String> {ClassTeacher("ClassTeacher","班主任"),CourseTeacher("CourseTeacher","任课老师");private final String id;private final String name;TeacherTypeEnum(String id,String name) {this.id = id;this.name = name;}@Overridepublic String getId() {return id;}@Overridepublic String getName() {return name;}public static String getNameById(String id) {return EnumUtil.getById(id, TeacherTypeEnum.class).getName();}}</span><span style="font-size:24px;"></span>GeneralEnum:
package com.xf.util;/** * 用于枚举需要实现的接口 * * @author badqiu */public interface GeneralEnum <K>{/** 得到枚举对应的id,一般保存这个id至数据库 */ public K getId(); /** 得到枚举描述 */ public String getName(); /** 枚举名称 */ public String name();}
EnumUtil:
<span style="font-size:14px;">package com.xf.util;import java.util.Arrays;import java.util.LinkedHashMap;import java.util.List;import org.apache.commons.lang.StringUtils;/** * 枚举工具类 */@SuppressWarnings("all")public class EnumUtil { /** * 将GeneralEnum.getId()作为Key,GeneralEnum.getName()作为value,存放在Map中并返回 * @param <T> * @param values * @return * @return * @return * @return */ public static List<? extends GeneralEnum> toList(Class<? extends GeneralEnum> enumClass) { return Arrays.asList(enumClass.getEnumConstants()); } /** * 将GeneralEnum.getId()作为Key,GeneralEnum.getName()作为value,存放在Map中并返回 * @param <T> * @param values * @return */ public static <T extends GeneralEnum> LinkedHashMap toMap(Class<? extends GeneralEnum> enumClass) { return toMap(enumClass.getEnumConstants()); } /** * 将GeneralEnum.getId()作为Key,GeneralEnum.getName()作为value,存放在Map中并返回 * @param <T> * @param values * @return */ public static <T extends GeneralEnum> LinkedHashMap toMap(T[] values) { LinkedHashMap map = new LinkedHashMap(); for(GeneralEnum item : values) { map.put(item.getId(), item.getName()); } return map; } public static <T extends GeneralEnum<K>,K> K getId(T enumValue) { if(enumValue == null) return null; return enumValue.getId(); } public static <T extends GeneralEnum> String getName(T enumValue) { if(enumValue == null) return null; return enumValue.getName(); } // public static <T extends GeneralEnum> String getName(T enumValue) {// if(enumValue == null) return null;// return enumValue.getName();// }//// public static <T extends Enum> String getName(T enumValue) {// if(enumValue == null) return null;// return enumValue.name();// } /** * 根据id查找得到Enum * @param id * @param values * @return */ public static <T extends GeneralEnum> T getById(Object id,Class<? extends GeneralEnum> enumClass) { return (T)getById(id, enumClass.getEnumConstants()); } public static String getNameById(Object id,Class<? extends GeneralEnum> enumClass) { return getById(id, enumClass.getEnumConstants()).getName(); } /** * 根据id查找得到Enum * @param id * @param values * @return */ public static <T extends GeneralEnum> T getById(Object id,T[] values) { if(id == null) return null; if(id instanceof String && StringUtils.isBlank((String)id)) return null; for (T item : values) { if (item.getId().equals(id)) { return item; } } return null; } /** * 根据id得到Enum,找不到则抛异常.如果id为null或者是空字符串,则返回null * @throws IllegalArgumentException 根据id得到Enum,找不到则抛异常 */ public static <T extends GeneralEnum> T getRequiredById(Object id,Class<? extends GeneralEnum> enumClass) { return (T)getRequiredById(id, enumClass.getEnumConstants()); } /** * 根据id得到Enum,找不到则抛异常.如果id为null或者是空字符串,则返回null * @param <T> * @param id * @param values * @return * @throws IllegalArgumentException 根据id得到Enum,找不到则抛异常 */ public static <T extends GeneralEnum> T getRequiredById(Object id,T[] values) throws IllegalArgumentException { if(id == null) return null; if(id instanceof String && StringUtils.isBlank((String)id)) return null; GeneralEnum v = getById(id,values); if(v == null) { if(values.length > 0) { String className = values[0].getClass().getName(); throw new IllegalArgumentException("not found Enum:"+className+" value by id:"+id); }else { throw new IllegalArgumentException("not found Enum by id:"+id); } } return (T)v; } }</span>
jsp:
<span style="font-size:14px;"><%@ page import="com.xf.allEnum.TeacherTypeEnum"%> </span>
<span style="font-size:14px;"><select name="grade"> <% for(TeacherTypeEnum at:TeacherTypeEnum.values()){ out.println("<option value="+at.getId()+">"+at.getName()+"</option>"); }%> </select></span>
0 0
- Java Enum
- JAVA ENUM
- Java Enum
- JAVA ENUM
- Java Enum
- Java Enum
- Java Enum
- java enum
- java enum
- java Enum
- java enum
- Java enum
- Java Enum
- java enum
- Java Enum
- java enum
- Java Enum
- Java Enum
- angularjs scope rootscope 区别
- 接口回调机制详解
- 抽象类
- LogStash 常用配置文件
- EtherCAT ET1100从站信息接口介绍
- Java enum
- spring 事务操作 声明方式
- Adroid软键盘处理
- Tengine
- SQLServer的分页优化使用Row_Number()分页存在的问题
- android app 构建过程
- 常用排序算法
- HDU1072
- Sublime Text 3 安装Package Control