获取自定义实体类注解工具类FieldHelper

来源:互联网 发布:淘宝保险平台 编辑:程序博客网 时间:2024/06/07 07:25
<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>

0 0
原创粉丝点击