java - 为什么 Java 反射 API 允许我们访问私有(private)和 protected 字段和方法?这不会破坏访问修饰符的目的吗?

标签 java reflection access-modifiers

这个问题在这里已经有了答案:





What is the purpose of access modifiers if they can be bypassed with reflection?

(2 个回答)


去年关闭。




我们可以通过 Java 反射 API 访问私有(private)变量。那么拥有访问修饰符有什么用呢?还可以帮助我更好地了解访问修饰符(私有(private)、公共(public)等)在实际应用程序中的实际用法。

最佳答案

它仍然保护私有(private)变量不被开发人员错误地使用。如果有人使用反射来访问私有(private)变量,他(希望)知道他在做什么。
此外,大多数框架不会直接访问变量,而是会查找变量的 getter 和 setter。

关于java - 为什么 Java 反射 API 允许我们访问私有(private)和 protected 字段和方法?这不会破坏访问修饰符的目的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66383187/

相关文章:

c# - 如何使用反射调试从 app.config 加载的对象?

scala - 在 Scala 中调用反射案例类构造函数

c# - 使用私有(private) setter 测试属性

java - JUnit 和 JFileChooser

java - play 2.0.2测试查询参数错误

java - 将java对象转换为相应类型的xml

java - AppEngine 连接的 Android 项目中的注释失败

vb.net - 使用 GetField 调用Member。在 VB.NET 中找不到字段

c# - UserControl 元素由于其保护级别而无法访问

c++ - 如果 'C' 公开继承自 'B',B 私自继承自 'A',为什么我不能在 'A' 内部创建 'C' 的对象?