获取class类中的属性和类型

mac2022-06-30  62

      public List getFiledsInfo(Object o){              Field[] fields=o.getClass().getDeclaredFields();                  String[] fieldNames=new String[fields.length];                  List list = new ArrayList();                  Map infoMap=null;              for(int i=0;i<fields.length;i++){                  infoMap = new HashMap();                  String tyle = fields[i].getType().toString();                String[] li = tyle.trim().split("\\.");                String type = li[li.length-1];                infoMap.put("type", type.toUpperCase());                  infoMap.put("name", fields[i].getName());                  //infoMap.put("value", getFieldValueByName(fields[i].getName(), o));                  list.add(infoMap);              }              return list;             }              public Object getFieldValueByName(String fieldName, Object o) {             try {                   String firstLetter = fieldName.substring(0, 1).toUpperCase();                   String getter = "get" + firstLetter + fieldName.substring(1);                   Method method = o.getClass().getMethod(getter, new Class[] {});                   Object value = method.invoke(o, new Object[] {});                   return value;               } catch (Exception e) {                   return null;               }           }

转载于:https://www.cnblogs.com/zhouchunDIY/p/8259643.html

最新回复(0)