Maison > Java > javaDidacticiel > le corps du texte

Java Reflection peut-il être utilisé pour accéder à des champs privés ?

Susan Sarandon
Libérer: 2024-10-31 07:00:17
original
465 Les gens l'ont consulté

Can Java Reflection Be Used to Access Private Fields?

Accès aux champs privés avec Java Reflection

Question : Les champs privés en Java sont-ils accessibles via la réflexion ?

Réponse : Oui, il est possible d'accéder aux champs privés avec la réflexion Java. Cependant, il est important de noter que cela nécessite des autorisations particulières.

Pour accéder à un champ privé d'une classe différente, la méthode setAccessible(true) de la classe Field peut être utilisée. Par exemple, considérons le code suivant :

<code class="java">import java.lang.reflect.*;

class Other
{
    private String str;
    public void setStr(String value)
    {
        str = value;
    }
}

class Test
{
    public static void main(String[] args)
        throws Exception
    {
        Other t = new Other();
        t.setStr("hi");
        Field field = Other.class.getDeclaredField("str");
        field.setAccessible(true);
        Object value = field.get(t);
        System.out.println(value);
    }
}</code>
Copier après la connexion

Ce code accède avec succès au champ privé str et imprime sa valeur. Cependant, il est crucial de faire preuve de prudence lorsque l’on utilise la réflexion pour accéder à des champs privés. Cela compromet l'encapsulation prévue par le concepteur de la classe. Cela pourrait entraîner l'omission des contrôles de validation ou d'autres interactions inattendues.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!