这个问题在这里已经有了答案:
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/