是否存在允许在运行时更改给定成员的访问修饰符的语言?
例如,根据使用对象的上下文隐藏/显示信息
大多数语言都可以做到这一点,但这通常会带来性能损失。例如,您可以使用以下命令更改Java中私有构造函数的可访问性:
Constructor constructor = MyClass.class.getDeclaredConstructor(paramTypes);
constructor.setAccessible(true);
MyClass instance = (MyClass)constructor.newInstance(params);
查看您喜欢的语言中类对象上可用的方法,您将看到许多获取方法或字段的方法,一旦掌握了这些方法或字段的句柄,您就可以随心所欲地滥用它们。