获取class类中的属性和类型

佐手、 提交于 2019-12-31 10:39:45

      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;    
           }    
       }

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!