使用反射機制設定欄位值:透過 Field.getDeclaredField() 取得欄位參考。呼叫 Field.set() 方法設定目標物件的新值。
Java 反射機制:設定字段值
#反射機制是一種在執行時間檢查和修改類別、方法、字段的機制。它允許我們存取、設定或呼叫 Java 程式的私有或受保護成員。
設定欄位值
要設定欄位值,我們可以使用 Field.set()
方法。此方法接受兩個參數:
語法:
field.set(目标对象, 新值);
程式碼範例:
假設我們有一個Person
類,它具有一個私有欄位age
。我們可以使用以下程式碼設定age
的值:
import java.lang.reflect.Field; public class Main { public static void main(String[] args) throws Exception { // 实例化 Person 对象 Person person = new Person(); // 获取 Person 类的私有字段 age Field field = person.getClass().getDeclaredField("age"); // 将 age 的值设置为 30 field.set(person, 30); // 输出 age 的值 System.out.println(person.getAge()); // 输出:30 } } class Person { private int age; public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
注意:
setAccessible(true)
方法解除欄位的私有性。 Field.set()
方法建立欄位值的副本。 以上是Java反射機制如何設定欄位值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!