访问修饰符也会影响反射吗?

Posted

技术标签:

【中文标题】访问修饰符也会影响反射吗?【英文标题】:Do access modifiers affect reflection also? 【发布时间】:2010-09-10 21:24:35 【问题描述】:

我一直相信他们做到了,但是看到这里的一些答案让我怀疑......

我可以通过反射从类外部访问私有字段/属性/方法吗?

【问题讨论】:

【参考方案1】:

是的,您可以通过反射访问私有字段。这就是许多 ORM 在不通过您的属性的情况下填充对象的方式(这将调用您可能不打算在对象加载时运行的业务逻辑)。

访问修饰符不是一种安全形式!

【讨论】:

不过,应用程序可能需要完全信任(或至少是 ReflectionPermission)。【参考方案2】:

但是,您需要额外的权限才能通过反射从类外部访问私有/受保护/内部字段/属性/方法。

【讨论】:

是的,应用程序需要完全信任(或至少 ReflectionPermission)。【参考方案3】:

是的,您可以,您只需在访问它们时在 Bi​​ndingFlags 中指定访问修饰符。

【讨论】:

【参考方案4】:

是的,你可以:但你真的应该问自己为什么要这样做:)

实际上只有一种情况是有意义的,这就是 UnitTest。

【讨论】:

以上是关于访问修饰符也会影响反射吗?的主要内容,如果未能解决你的问题,请参考以下文章

即使使用 #available(iOS 15.0, *),iOS 15 唯一的视图修饰符也会导致 iOS 14 崩溃

如果可以通过反射绕过访问修饰符,它们的目的是啥?

使用反射检测属性的访问修饰符类型

在运行时更改访问修饰符

C++变量内存分配及类型修饰符

阶段1 语言基础+高级_1-3-Java语言高级_02-继承与多态_第6节 权限修饰符_6_四种权限修饰符