Maison >Java >javaDidacticiel >Comment obtenir la valeur d'un attribut dans la réflexion Java

Comment obtenir la valeur d'un attribut dans la réflexion Java

小老鼠
小老鼠original
2024-01-03 15:05:391498parcourir

Méthode d'obtention : 1. Créez un exemple d'objet ; 2. Obtenez la valeur du champ via field.get(person), où person est l'objet exemple et field est l'objet Field, représentant un champ 3. Via setAccessible ; (vrai) Définissez le champ sur l'état accessible, et même le champ privé peut obtenir sa valeur ; 4. Parcourez le tableau de champs, obtenez le nom et la valeur correspondante de chaque champ et imprimez-le.

Comment obtenir la valeur d'un attribut dans la réflexion Java

Le système d'exploitation de ce tutoriel : système Windows 10, ordinateur Dell G3.

En Java, vous pouvez utiliser le mécanisme de réflexion pour obtenir la valeur d'une propriété d'objet. Dans l'exemple précédent, nous avons montré comment utiliser la réflexion pour obtenir la valeur de la propriété de l'objet. Voici la partie du code clé :

import java.lang.reflect.Field;
public class ReflectExample {
    public static void main(String[] args) throws IllegalAccessException {
        // 创建一个示例对象
        Person person = new Person("John", 25, "123 Main St");
        // 获取Class对象
        Class<?> clazz = person.getClass();
        // 获取类的所有字段(包括私有字段)
        Field[] fields = clazz.getDeclaredFields();
        // 遍历字段数组
        for (Field field : fields) {
            // 设置字段为可访问,即使是私有字段也可以访问
            field.setAccessible(true);
            // 获取字段的名称
            String fieldName = field.getName();
            // 获取字段的值
            Object fieldValue = field.get(person);
            // 打印字段名和值
            System.out.println(fieldName + ": " + fieldValue);
        }
    }
}
// 示例类
class Person {
    private String name;
    private int age;
    private String address;
    public Person(String name, int age, String address) {
        this.name = name;
        this.age = age;
        this.address = address;
    }
}

Dans l'exemple ci-dessus, la valeur du champ est obtenue via field.get(person ), où personne est un objet Sample, tandis que field est un objet Field, représentant un champ. En définissant un champ dans un état accessible via setAccessible(true), même un champ privé peut obtenir sa valeur.

Parcourez le tableau de champs, obtenez le nom et la valeur correspondante de chaque champ et imprimez-le. Il convient de noter que l’obtention de la valeur d’un champ privé par réflexion nécessite une attention particulière à la sécurité et à l’encapsulation.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn