zoukankan      html  css  js  c++  java
  • 【java】java获取对象属性类型、属性名称、属性值

    java获取对象属性类型、属性名称、属性值

    获取属性 修饰符:【在Field[]循环中使用】

    String modifier = Modifier.toString(fields[i].getModifiers());
    /** 
     * 根据属性名获取属性值 
     * */  
       private 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) {    
               log.error(e.getMessage(),e);    
               return null;    
           }    
       }   
         
       /** 
        * 获取属性名数组 
        * */  
       private String[] getFiledName(Object o){  
        Field[] fields=o.getClass().getDeclaredFields();  
            String[] fieldNames=new String[fields.length];  
        for(int i=0;i<fields.length;i++){  
            System.out.println(fields[i].getType());  
            fieldNames[i]=fields[i].getName();  
        }  
        return fieldNames;  
       }  
         
       /** 
        * 获取属性类型(type),属性名(name),属性值(value)的map组成的list 
        * */  
       private 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();  
            infoMap.put("type", fields[i].getType().toString());  
            infoMap.put("name", fields[i].getName());  
            infoMap.put("value", getFieldValueByName(fields[i].getName(), o));  
            list.add(infoMap);  
        }  
        return list;  
       }  
         
       /** 
        * 获取对象的所有属性值,返回一个对象数组 
        * */  
       public Object[] getFiledValues(Object o){  
        String[] fieldNames=this.getFiledName(o);  
        Object[] value=new Object[fieldNames.length];  
        for(int i=0;i<fieldNames.length;i++){  
            value[i]=this.getFieldValueByName(fieldNames[i], o);  
        }  
        return value;  
       } 
  • 相关阅读:
    网络流24题 餐巾计划(DCOJ8008)
    网络流24题 负载平衡(DCOJ8013)
    tyvj1982 武器分配
    bzoj1877 晨跑
    bzoj1834 网络扩容
    草地排水 改了又改(DCOJ6013)
    codevs1033 蚯蚓的游戏问题
    codevs1227 方格取数2
    bzoj1412 狼和羊的故事
    codevs1839 洞穴勘测
  • 原文地址:https://www.cnblogs.com/sxdcgaq8080/p/9389166.html
Copyright © 2011-2022 走看看