java 反射得到屬性與屬性值
阿新 • • 發佈:2018-01-24
att ble .com ssi 9.png acc ttr cep 使用
反射可以破壞所有的封裝性,比如這次通過反射得到的屬性與屬性值;
/** * 得到屬性值 * @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(); //獲取屬性值,使用Obj保存Object value = field.get(obj); //一個個賦值 nameVlues += field.getName()+":"+value+","; } catch (IllegalAccessException e) { e.printStackTrace(); } } //不要最有一個逗號"," String result= nameVlues.substring(0,nameVlues.length()-1); System.out.println(result); }
我們再來看看輸出的結果吧:
數據是提前通過set的方法賦值的
java 反射得到屬性與屬性值