«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Может ли Java Reflection Access Private Plids?

Может ли Java Reflection Access Private Plids?

Опубликовано в 2025-04-21
Просматривать:209

Can You Access Private Fields in Java Using Reflection?

доступ к частным полям через размышление в Java

введение

Encapsulation Java. Тем не менее, можно обойти эти ограничения, используя API отражения Java. В этой статье исследуется, можно ли получить доступные поля с помощью Reflection. Чтобы достичь этого:

Получить объект поля:

вызовать метод getDeclaredField () на объекте класса, чтобы получить представление поля.

    установить доступность:
  1. использовать метод setAccessible () полевой объект, чтобы установить его для установления истинности. Это допускает доступ к частным членам извне вложенного класса. частная строка Str; public void setstr (строка значения) { str = значение; } } для доступа к полю STR через Reflection:
  2. импортировать java.lang.reflect.*; класс другой { Public Static Void Main (String [] args) бросает исключение { Тест t = новый тест (); T.SetStr ("Привет"); Field Field = test.class.getDeclaredfield ("str"); Field.SetAccessible (true); Значение объекта = field.get (t); System.out.println (значение); } }
  3. ]
предостережения:

, в то время как технически возможно, доступ к частным полям через отражение может иметь существенные недостатки:

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

может повлиять на валидацию:
import java.lang.reflect.*;

class Other {
    public static void main(String[] args)
        throws Exception
    {
        Test t = new Test();
        t.setStr("hi");
        Field field = Test.class.getDeclaredField("str");
        field.setAccessible(true);
        Object value = field.get(t);
        System.out.println(value);
    }
}

может вызвать ошибки: . Отражение должно быть сделано с осторожностью и только в случае абсолютно необходимо.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3