反射-通過反射寫一個通用的設定某個物件的某個屬性為指定的值
package cn.itcast.test;
import java.lang.reflect.Field;
public class Tool {
public void setProperty(Object obj, String propertyName, Object value)
throws NoSuchFieldException, SecurityException,
IllegalArgumentException, IllegalAccessException {
// 根據物件獲取位元組碼檔案物件
Class c = obj.getClass();
// 獲取該物件的propertyName成員變數
Field field = c.getDeclaredField(propertyName);
// 取消訪問檢查
field.setAccessible(true);
// 給物件的成員變數賦值為指定的值
field.set(obj, value);
}
}
package cn.itcast.test;
public class ToolDemo {
public static void main(String[] args) throws NoSuchFieldException,
SecurityException, IllegalArgumentException, IllegalAccessException {
Person p = new Person();
Tool t = new Tool();
t.setProperty(p, "name", "林青霞");
t.setProperty(p, "age", 27);
System.out.println(p);
System.out.println("-----------");
Dog d = new Dog();
t.setProperty(d, "sex", '雄');
t.setProperty(d, "price", 12.34f);
System.out.println(d);
}
}
class Dog {
char sex;
float price;
@Override
public String toString() {
return sex + "---" + price;
}
}
class Person {
private String name;
public int age;
@Override
public String toString() {
return name + "---" + age;
}
}
相關文章
- C#獲取某個物件的屬性值C#物件
- C#通過反射獲取物件屬性,列印所有欄位屬性的值C#反射物件
- vue監聽input是否為空(監聽值為物件某個屬性)Vue物件
- 陣列物件按物件某個屬性排序陣列物件排序
- 獲取json串裡的某個屬性值JSON
- 論如何監聽物件某個屬性的變化物件
- 獲取母字串中某個子字串的某個確定的index值字串Index
- JAVA裡List集合中的物件根據物件的某個屬性值降序或者升序排序Java物件排序
- C#反射設定屬性值和獲取屬性值C#反射
- Js陣列物件的屬性值升序排序,並指定陣列中的某個物件移動到陣列的最前面JS陣列物件排序
- Javascript 如何判斷物件為空 {},以及是否包含某個屬性?JavaScript物件
- ABAP 通過SQL修改某個程式的鎖定狀態SQL
- Go 通過反射的reflect設定實際變數的值Go反射變數
- js判斷物件裡面是否有某個屬性JS物件
- javascript,檢測object物件中是否存在某個屬性JavaScriptObject物件
- golang通過反射設定結構體欄位的值Golang反射結構體
- PHP正規表示式抓取某個標籤的特定屬性值的方法PHP
- `newtonsoft.json` 指定某個屬性使用特定的時間格式JSON
- java lambda list集合中物件某屬性重複,只取第一個物件Java物件
- selenium 如何定位沒有某個屬性的元素
- 通過js一次性為元素設定多個樣式屬性JS
- Greenplum訪問某個模式的某個表模式
- 如何檢查某個使用者是否具有某個許可權物件上定義的某種許可權物件
- Java中的反射機制(二) 一個利用反射進行物件拷貝的例子Java反射物件
- 將一個物件裡所有的空值屬性設定成null物件Null
- 使用java反射技術完成物件所有屬性值的輸出Java反射物件
- java的兩個bean之間複製屬性,所有屬性中替換某幾個字元JavaBean字元
- 獲取物件屬性型別、屬性名稱、屬性值的研究:反射和JEXL解析引擎物件型別反射
- 通過java反射,遞迴查詢物件所有屬性,為空也要返回欄位的結構Java反射遞迴物件
- 查詢某個欄位的不同值
- 按照NSArray內部的某個物件排序物件排序
- mongodb查詢資料庫中某個欄位中的值包含某個字串的方法MongoDB資料庫字串
- DataGrid中通過CHECKBOX來修改庫裡某個欄位的值
- 逆向工程通過某個欄位排序排序
- sql去除某個欄位中的某個字串 replaceSQL字串
- 元物件、 屬性 和 反射程式設計物件反射程式設計
- 強制轉換檢視某個欄位為某個型別的sql型別SQL
- Xcode設定自己的個性屬性XCode