Utilisez le mécanisme de réflexion pour définir la valeur du champ : obtenez la référence du champ via Field.getDeclaredField(). Appelez la méthode Field.set() pour définir la nouvelle valeur de l'objet cible.
Mécanisme de réflexion Java : définition des valeurs des champs
Le mécanisme de réflexion est un mécanisme permettant de vérifier et de modifier les classes, les méthodes et les champs au moment de l'exécution. Il nous permet d'accéder, de définir ou d'appeler des membres privés ou protégés d'un programme Java.
Définir la valeur du champ
Pour définir la valeur du champ, nous pouvons utiliser la méthode Field.set()
. La méthode accepte deux paramètres : 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()
Personne
, qui possède un champ privé age
. Nous pouvons définir la valeur de age
en utilisant le code suivant : 🎜rrreee🎜🎜Remarque : 🎜🎜setAccessible(true) code> Méthode pour dépriver un champ. 🎜<li>Vous pouvez également définir des champs protégés ou d'accès au package. 🎜</li>
<li>Si vous souhaitez ne pas modifier l'objet d'origine, vous pouvez également utiliser la méthode <code>Field.set()
pour créer une copie de la valeur du champ. 🎜🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!