PageSettingUtils.java 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. package com.pavis.app.saasbacken.utils;
  2. import com.alibaba.fastjson.JSON;
  3. import io.swagger.annotations.ApiModelProperty;
  4. import java.lang.reflect.Field;
  5. import java.util.ArrayList;
  6. import java.util.HashMap;
  7. import java.util.List;
  8. import java.util.Map;
  9. /**
  10. * @program: push-saas
  11. * @description:
  12. * @author: Guanzi
  13. * @created: 2021/11/08 16:44
  14. */
  15. public class PageSettingUtils {
  16. /**
  17. * 根据实体类获取对应的key-value。
  18. *
  19. * @param instance 实体类对象。
  20. * @param fieldMap 待忽略的属性。
  21. * @return
  22. * @throws NoSuchFieldException
  23. */
  24. // public static Map<String, String> getDeclaredFieldsInfo(Object instance, JSONObject jsonObject) throws NoSuchFieldException {
  25. public static Map<String, String> getDeclaredFieldsInfo(Object instance, Map<String, String> fieldMap) throws NoSuchFieldException {
  26. Map<String, String> map = new HashMap();
  27. Class<?> clazz = instance.getClass();
  28. Field[] fields = clazz.getDeclaredFields();
  29. boolean b = false;
  30. for (int i = 0; i < fields.length; i++) {
  31. System.out.println("i:" + fields[i].getName());
  32. // 除过fieldMap中的属性,其他属性都获取
  33. if (!fieldMap.containsKey(fields[i].getName())) {
  34. System.err.println("********" + fields[i].getName());
  35. // Field field=clazz.getDeclaredField(fields[i].getName());
  36. boolean annotationPresent = fields[i].isAnnotationPresent(ApiModelProperty.class);
  37. if (annotationPresent) {
  38. // 获取注解值
  39. String name = fields[i].getAnnotation(ApiModelProperty.class).value();
  40. map.put(name, fields[i].getName());
  41. }
  42. }
  43. }
  44. return map;
  45. }
  46. /**
  47. * 根据实体类获取对应的key-value。
  48. *
  49. * @param instance 实体类对象。
  50. * @param fieldMap 待忽略的属性。
  51. * @return
  52. * @throws NoSuchFieldException
  53. */
  54. // public static Map<String, String> getDeclaredFieldsInfo(Object instance, JSONObject jsonObject) throws NoSuchFieldException {
  55. public static List<Map<String,String>> getDeclaredFields(Object instance, Map<String, String> fieldMap) throws NoSuchFieldException {
  56. Class<?> clazz = instance.getClass();
  57. Field[] fields = clazz.getDeclaredFields();
  58. boolean b = false;
  59. List<Map<String,String>> maps = new ArrayList<>();
  60. for (int i = 0; i < fields.length; i++) {
  61. Map<String, String> map = new HashMap();
  62. System.out.println("i:" + fields[i].getName());
  63. // 除过fieldMap中的属性,其他属性都获取
  64. if (!fieldMap.containsKey(fields[i].getName())) {
  65. System.err.println("********" + fields[i].getName());
  66. // Field field=clazz.getDeclaredField(fields[i].getName());
  67. boolean annotationPresent = fields[i].isAnnotationPresent(ApiModelProperty.class);
  68. if (annotationPresent) {
  69. // 获取注解值
  70. String name = fields[i].getAnnotation(ApiModelProperty.class).value();
  71. map.put(name, fields[i].getName());
  72. maps.add(map);
  73. }
  74. }
  75. }
  76. System.err.println("maps:" + JSON.toJSONString(maps));
  77. return maps;
  78. }
  79. }