доступ к частным полям через размышление в Java
введение
Encapsulation Java. Тем не менее, можно обойти эти ограничения, используя API отражения Java. В этой статье исследуется, можно ли получить доступные поля с помощью Reflection. Чтобы достичь этого:
Получить объект поля:
вызовать метод getDeclaredField () на объекте класса, чтобы получить представление поля.
, в то время как технически возможно, доступ к частным полям через отражение может иметь существенные недостатки:
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