java 反射得到屬性與屬性值


反射可以破壞所有的封裝性,比如這次通過反射得到的屬性與屬性值;

復制代碼
 /**
     * 得到屬性值
     * @param obj
     */
    public static void readAttributeValue(Object obj){
            String nameVlues="";
            //得到class
            Class cls = obj.getClass();
            //得到所有屬性
            Field[] fields = cls.getDeclaredFields();
           for (int i=0;i<fields.length;i++){//遍歷
               try {
                   //得到屬性
                   Field field = fields[i];
                   //打開私有訪問
                   field.setAccessible(true);
                   //獲取屬性
                   String name = field.getName();
                   //獲取屬性值
                   Object value = field.get(obj);
                   //一個個賦值
                   nameVlues += field.getName()+":"+value+",";
               } catch (IllegalAccessException e) {
                   e.printStackTrace();
               }
           }
       //獲取最后一個逗號的位置
       int lastIndex = nameVlues.lastIndexOf(",");
    
//不要最后一個逗號"," String result= nameVlues.substring(0,lastIndex); System.out.println(result); }
復制代碼

 

我們再來看看輸出的結果吧:

 

數據是提前通過set的方法賦值的

 

原文地址:https://www.cnblogs.com/javaLin/p/8341388.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM