Verwenden Sie den Reflexionsmechanismus, um den Feldwert festzulegen: Feldreferenz über Field.getDeclaredField() abrufen. Rufen Sie die Methode Field.set() auf, um den neuen Wert des Zielobjekts festzulegen.
Java-Reflexionsmechanismus: Feldwerte festlegen
Der Reflexionsmechanismus ist ein Mechanismus zum Überprüfen und Ändern von Klassen, Methoden und Feldern zur Laufzeit. Es ermöglicht uns, auf private oder geschützte Mitglieder eines Java-Programms zuzugreifen, diese festzulegen oder aufzurufen.
Feldwert festlegen
Um den Feldwert festzulegen, können wir die Methode Field.set()
verwenden. Die Methode akzeptiert zwei Parameter: 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()
Person
-Klasse, die über ein privates Feld age
verfügt. Wir können den Wert von age
mit dem folgenden Code festlegen: 🎜rrreee🎜🎜Hinweis: 🎜🎜setAccessible(true) verwenden. code> Methode zum Aufheben der Privatisierung eines Felds. 🎜<li>Sie können auch geschützte oder Paketzugriffsfelder festlegen. 🎜</li>
<li>Wenn Sie das Originalobjekt nicht ändern möchten, können Sie auch die Methode <code>Field.set()
verwenden, um eine Kopie des Feldwerts zu erstellen. 🎜🎜Das obige ist der detaillierte Inhalt vonWie legt der Java-Reflexionsmechanismus Feldwerte fest?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!