您的位置:首页 > 其它

获取自定义实体类注解工具类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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: