java - 通过模式访问非公开方法

标签 java design-patterns

如果我有一些类,其中某些接口(interface)受到保护,但我想在包外部和层次结构之外使用它,可以使用哪种模式,或者有什么方法?
我不想更改那些旧(遗留)类的访问修饰符。

最佳答案

以下代码显示了如何访问此类字段:

Field privateStringField = PrivateObject.class.
        getDeclaredField("privateString");

privateStringField.setAccessible(true);
String fieldValue = (String) privateStringField.get(privateObject);

同样的事情也可以在方法中完成。但作为一种模式,您最好将其打包在静态实用程序方法中,例如 ReflectionAccessor.accessField(Class class, Object object, String fieldName)

关于java - 通过模式访问非公开方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8487992/

相关文章:

java - "Deprecating the Observer Pattern"——其他语言的代码示例?

java - 应用程序 :preDexDebug error sending mail using java mail 执行失败

java - 制作MySQL方法

java - 在基于 Java 的 Azure 网站中使用 SendGrid

design-patterns - 具有多个值的实体的最佳设计

java - 将转换应用于多个类中的多个属性的设计模式

c# - 如何删除在使用属性/字段将自身显示为字符串方面有所不同的重复代码?

Java 编码 - 创建答案变量的多个变量

java - Perl 在 Java 中的解包表示是什么

php - 考虑用户打开编辑的应用程序的最佳实现是什么?