1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- package com.pavis.app.saasbacken.utils;
- import com.alibaba.fastjson.JSON;
- import io.swagger.annotations.ApiModelProperty;
- import java.lang.reflect.Field;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- /**
- * @program: push-saas
- * @description:
- * @author: Guanzi
- * @created: 2021/11/08 16:44
- */
- public class PageSettingUtils {
- /**
- * 根据实体类获取对应的key-value。
- *
- * @param instance 实体类对象。
- * @param fieldMap 待忽略的属性。
- * @return
- * @throws NoSuchFieldException
- */
- // public static Map<String, String> getDeclaredFieldsInfo(Object instance, JSONObject jsonObject) throws NoSuchFieldException {
- public static Map<String, String> getDeclaredFieldsInfo(Object instance, Map<String, String> fieldMap) throws NoSuchFieldException {
- Map<String, String> map = new HashMap();
- Class<?> clazz = instance.getClass();
- Field[] fields = clazz.getDeclaredFields();
- boolean b = false;
- for (int i = 0; i < fields.length; i++) {
- System.out.println("i:" + fields[i].getName());
- // 除过fieldMap中的属性,其他属性都获取
- if (!fieldMap.containsKey(fields[i].getName())) {
- System.err.println("********" + fields[i].getName());
- // Field field=clazz.getDeclaredField(fields[i].getName());
- boolean annotationPresent = fields[i].isAnnotationPresent(ApiModelProperty.class);
- if (annotationPresent) {
- // 获取注解值
- String name = fields[i].getAnnotation(ApiModelProperty.class).value();
- map.put(name, fields[i].getName());
- }
- }
- }
- return map;
- }
- /**
- * 根据实体类获取对应的key-value。
- *
- * @param instance 实体类对象。
- * @param fieldMap 待忽略的属性。
- * @return
- * @throws NoSuchFieldException
- */
- // public static Map<String, String> getDeclaredFieldsInfo(Object instance, JSONObject jsonObject) throws NoSuchFieldException {
- public static List<Map<String,String>> getDeclaredFields(Object instance, Map<String, String> fieldMap) throws NoSuchFieldException {
- Class<?> clazz = instance.getClass();
- Field[] fields = clazz.getDeclaredFields();
- boolean b = false;
- List<Map<String,String>> maps = new ArrayList<>();
- for (int i = 0; i < fields.length; i++) {
- Map<String, String> map = new HashMap();
- System.out.println("i:" + fields[i].getName());
- // 除过fieldMap中的属性,其他属性都获取
- if (!fieldMap.containsKey(fields[i].getName())) {
- System.err.println("********" + fields[i].getName());
- // Field field=clazz.getDeclaredField(fields[i].getName());
- boolean annotationPresent = fields[i].isAnnotationPresent(ApiModelProperty.class);
- if (annotationPresent) {
- // 获取注解值
- String name = fields[i].getAnnotation(ApiModelProperty.class).value();
- map.put(name, fields[i].getName());
- maps.add(map);
- }
- }
- }
- System.err.println("maps:" + JSON.toJSONString(maps));
- return maps;
- }
- }
|