Ben*_*wis 5 java reflection access-modifiers
I understand that using access modifiers is an important practice when writing Java (or most) code, but isn't it effectively made redundant by the fact that you can bypass these modifiers using reflection?
例如,如果我想通过将对象敏感变量设置为私有并提供访问器方法来保护我的对象,则仍然可以轻松地有人使用反射来进入并绕过它,并可能设置不安全的值。为什么Java提供访问修饰符,然后提供绕过它们的工具?不使用它们似乎会更容易。
访问修饰符的一个重要目的是构造代码,并帮助该代码的用户正确有效地理解和使用它。这不同于充当防篡改安全机制。因此,同时具有访问修饰符和反射并不矛盾。代码的编写者可以使用访问修饰符表达其意图,而出于任何原因需要绕过它们的代码可以通过通常的风险和含义来做到这一点。
| 归档时间: |
|
| 查看次数: |
102 次 |
| 最近记录: |