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

骑猪看日落 2022-08-19 14:17 269阅读 0赞
  1. <strong><span style="font-family:FangSong_GB2312;"></span></strong><pre name="code" class="java">package com.bjhy.platform.criminal.search.core.annotation;
  2. import java.lang.annotation.ElementType;
  3. import java.lang.annotation.Retention;
  4. import java.lang.annotation.RetentionPolicy;
  5. import java.lang.annotation.Target;
  6. /**
  7. * @Description 用于配置实体类字段说明信息
  8. * @author wangbowen
  9. * @date 2015年12月14日
  10. */
  11. @Target(ElementType.FIELD)
  12. @Retention(RetentionPolicy.RUNTIME)
  13. public @interface ColumnConfig {
  14. /**
  15. * 字段的中文名
  16. * @return
  17. */
  18. String description() default "";
  19. }
  20. <strong><span style="font-family:FangSong_GB2312;">
  21. </span></strong>
  22. <strong><span style="font-family:FangSong_GB2312;">
  23. </span></strong>
  24. <strong><span style="font-family:FangSong_GB2312;">
  25. </span></strong>
  26. <strong><span style="font-family:FangSong_GB2312;">
  27. </span></strong>
  28. <strong><span style="font-family:FangSong_GB2312;">
  29. </span></strong>
  30. <strong><span style="font-family:FangSong_GB2312;">
  31. </span></strong>
  32. <strong><span style="font-family:FangSong_GB2312;">package com.bjhy.platform.criminal.search.core.tool;
  33. import java.lang.reflect.Field;
  34. import java.util.ArrayList;
  35. import java.util.LinkedHashMap;
  36. import java.util.List;
  37. import com.bjhy.platform.criminal.search.core.annotation.ColumnConfig;
  38. /***
  39. * 获取属性与对应的中文名工具类
  40. * @author wangbowen
  41. * @date 2015-12-14
  42. * @version 1.0
  43. *
  44. */
  45. public class FieldHelper {
  46. /**
  47. * 根据实体类名获取字段名称和中文名称
  48. * @param entityName 实体类名
  49. * @return List<Map<String,Object>>
  50. */
  51. public static List<LinkedHashMap<String,Object>> initAnnoFieldDic(@SuppressWarnings("rawtypes") Class clzz){
  52. //用于存储字段和中文值的集合
  53. List<LinkedHashMap<String,Object>> fieldList = new ArrayList<>();
  54. //用于存储实体类字段(key)和中文名(value)
  55. LinkedHashMap<String,Object> valueMap = new LinkedHashMap<>();
  56. //获取对象中所有的Field
  57. Field[] fields = clzz.getDeclaredFields();
  58. //循环实体类字段集合,获取标注@ColumnConfig的字段
  59. for (Field field : fields) {
  60. if(field.isAnnotationPresent(ColumnConfig.class)){
  61. //获取字段名
  62. String fieldNames = clzz.getSimpleName()+"."+field.getName();
  63. //获取字段注解
  64. ColumnConfig columnConfig = field.getAnnotation(ColumnConfig.class);
  65. //判断是否已经获取过该code的字典数据 避免重复获取
  66. if(valueMap.get(columnConfig.description())==null){
  67. valueMap.put(fieldNames, columnConfig.description());
  68. }
  69. }
  70. }
  71. fieldList.add(valueMap);//将LinkedHashMap放入List集合中
  72. return fieldList;
  73. }
  74. }
  75. </span></strong>

发表评论

表情:
评论列表 (有 0 条评论,269人围观)

还没有评论,来说两句吧...

相关阅读

    相关 定义工具

    自定义工具类 概述: 一个类的方法只有静态方法并且构造方法私有化的类就叫做工具类 作用: 集成某个领域的不同功能,使用的时候方便、快捷 自定义工具类【A

    相关 定义Java工具

    我们平时在做项目的时候经常会做一下一些校验,比如(手机、邮箱、身份证号格式校验;字符串和集合等是否为空判断),在这里我们讲介绍一些常见的数据校验,我们把它封装在utils类中,