获取class类中的属性和类型

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

posted @ 2018-01-10 17:07  小春子60  阅读(454)  评论(0编辑  收藏  举报