java 动态实例化内部类 可解析枚举
来源:互联网 发布:linux查看网络命令 编辑:程序博客网 时间:2024/04/28 08:35
package com.util;import java.util.LinkedHashMap;import java.util.Map;/** * <strong>功能:</strong>枚举使用工具 <strong>作者:</strong>Gary Huang <strong>日期:</strong> * 2014-3-5 <strong>版权:<strong>版权所有(C) 2014,QQ 834865081 */public class EnumUtil {public static void main(String[] args) throws Exception {System.out.println(parseEnum("enum:com.util.Task1.Yes"));}public static Map<Integer, String> parseEnum(String clazz)throws Exception {if(clazz.startsWith("enum:")){clazz = clazz.replace("enum:", "" ); }else{return null ; }Class<?> ref = forName(clazz) ;if(null == ref){throw new ClassNotFoundException(String.format("%s class not fond ", clazz)); }Map<Integer, String> map = new LinkedHashMap<Integer, String>();if (ref.isEnum()) {Object[] ts = ref.getEnumConstants();for (Object t : ts) {Enum<?> e = (Enum<?>) t;map.put(e.ordinal(), e.name());}}return map;}static Class<?> forName(String className) throws Exception{ String[]packageNames = className.split("\\.") ; String tempClassName = "" ; Class<?> returnClazz = null ; for(String packageName : packageNames){tempClassName += packageName ; if(fristCharIsUpper(packageName)){if( null == returnClazz){try{returnClazz = Class.forName( tempClassName);}catch(Exception e){}}else {Class<?> classes[]=returnClazz.getDeclaredClasses();for(Class<?> tempClazz : classes){if(tempClazz.getSimpleName().equals(packageName)){returnClazz = tempClazz ; }}}}tempClassName += "." ;}return returnClazz ; }static boolean fristCharIsUpper(String name){if(null != name && name.length() >0){char[]chars = name.toCharArray() ;int intChar = (int)chars[0] ;return intChar <= 90 && intChar >= 65 ; }return false ; }}
0 0
- java 动态实例化内部类 可解析枚举
- java 内部类 枚举
- Java实例化内部类
- java内部类实例化
- Java 内部类实例化
- Java内部类实例
- java 反射实例化内部类
- Java中内部类的实例化
- java内部类的实例化
- java内部类必须双重实例化
- 如何实例化 java 内部类
- java内部类的实例化
- Java 内部类的实例化
- java内部类实例化对象
- java中内部类的实例化
- java中如何实例化内部类
- 内部类实例化
- java中定义动态内部类,静态的主函数不能直接实例化该类
- Linux 安装命令
- Activity和Service的生命周期(图)
- 在Windows下运行Felzenszwalb的Deformable Part Models(voc-release4.01)目标检测matlab源码
- ViewPager+Fragment基本使用方法
- 我对Java Serializable(序列化)的理解和总结(转)
- java 动态实例化内部类 可解析枚举
- windows平台一个程序究竟占用多少内存?
- jndi2
- mongodb mapReduce
- 【NOIP2000】进制转换 模拟
- this
- C/C++ 笔试面试(3)——内存管理GetMemory
- Android学习笔记之NFC近距离无线通讯技术(Dean)
- 用命令编译、运行java项目(多个源码包,依赖第三方jar包)