获取自定义实体类注解工具类FieldHelper
2016-01-20 10:11
399 查看
<strong><span style="font-family:FangSong_GB2312;"></span></strong><pre name="code" class="java">package com.bjhy.platform.criminal.search.core.annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; /** * @Description 用于配置实体类字段说明信息 * @author wangbowen * @date 2015年12月14日 */ @Target(ElementType.FIELD) @Retention(RetentionPolicy.RUNTIME) public @interface ColumnConfig { /** * 字段的中文名 * @return */ String description() default ""; }
<strong><span style="font-family:FangSong_GB2312;"> </span></strong>
<strong><span style="font-family:FangSong_GB2312;"> </span></strong>
<strong><span style="font-family:FangSong_GB2312;"> </span></strong>
<strong><span style="font-family:FangSong_GB2312;"> </span></strong>
<strong><span style="font-family:FangSong_GB2312;"> </span></strong>
<strong><span style="font-family:FangSong_GB2312;"> </span></strong>
<strong><span style="font-family:FangSong_GB2312;">package com.bjhy.platform.criminal.search.core.tool; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import com.bjhy.platform.criminal.search.core.annotation.ColumnConfig; /*** * 获取属性与对应的中文名工具类 * @author wangbowen * @date 2015-12-14 * @version 1.0 * */ public class FieldHelper { /** * 根据实体类名获取字段名称和中文名称 * @param entityName 实体类名 * @return List<Map<String,Object>> */ public static List<LinkedHashMap<String,Object>> initAnnoFieldDic(@SuppressWarnings("rawtypes") Class clzz){ //用于存储字段和中文值的集合 List<LinkedHashMap<String,Object>> fieldList = new ArrayList<>(); //用于存储实体类字段(key)和中文名(value) LinkedHashMap<String,Object> valueMap = new LinkedHashMap<>(); //获取对象中所有的Field Field[] fields = clzz.getDeclaredFields(); //循环实体类字段集合,获取标注@ColumnConfig的字段 for (Field field : fields) { if(field.isAnnotationPresent(ColumnConfig.class)){ //获取字段名 String fieldNames = clzz.getSimpleName()+"."+field.getName(); //获取字段注解 ColumnConfig columnConfig = field.getAnnotation(ColumnConfig.class); //判断是否已经获取过该code的字典数据 避免重复获取 if(valueMap.get(columnConfig.description())==null){ valueMap.put(fieldNames, columnConfig.description()); } } } fieldList.add(valueMap);//将LinkedHashMap放入List集合中 return fieldList; } } </span></strong>
相关文章推荐
- Android27_LruCache缓存处理及异步加载图片类的封装
- 使用 docker 后出现的网络异常现象
- poj 1182 食物链(并查集)
- cocos2d-x2.2.3和android平台环境的搭建
- 获取本机安装的Revit版本信息
- JavaScript清除Cookie完全攻略--被domain和path折磨
- jq确定可见性以及li在ie7下出现默认上下间距
- C++之路进阶——可持续化线段树(Couriers)
- ELK_elk+redis 搭建日志分析平台
- LeetCode22. Generate Parentheses
- word怎样批量删除换行符?
- cvSplit(),cv图像颜色通道分割和融合
- Android 避免APP启动闪黑屏的解决办法(Theme和Style)
- jquery.timers使用说明
- 在Xcode7.x中安装Alcatraz
- MongoDB 介绍
- 2015年,从毕业到工作的几点感悟(Android开发新人)
- cocos2d-x-2.2.3和vs2012环境配置
- 完全二叉树用数组存
- 如果应用程序正在通过 <identity impersonate="true"/> 模拟,则标识将为匿名用户(通常为 IUSR_MACHINENAME)或经过身份验证的请求用户。