java - 扩展私有(private)内部类: Is it better to use reflection hacks or copy/paste the base class?

标签 java reflection eclipse-plugin polymorphism

一个开源库有一个我正在扩展的抽象 Java 类,称为 AbstractDialog。它有一个私有(private)内部类 A 和一个在构造函数中实例化的私有(private)成员 A a。不幸的是,我需要自定义 A 中实现的行为。

我应该使用反射将 a 成员变量设置为我自己的实现吗?或者将 AbstractDialog 的源代码复制到我的项目中并保护 Aa

<小时/>

<子> 一般答案是最好的,但在我的具体情况下,我想覆盖 ContentProvider 的行为在抽象类中FilteredItemsSelectionDialog对于我正在开发的 Eclipse 插件。

最佳答案

如果 A 是私有(private)的,则它不适合外部使用,因此可能不保证以相同的方式工作,甚至不保证将来存在。所以反射黑客已经过时了。复制它,并控制实现。如果有分歧就好了。如果你控制了框架,我会重构以使 A 普遍可用,但既然你不控制,你就没有太多选择。

关于java - 扩展私有(private)内部类: Is it better to use reflection hacks or copy/paste the base class?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31397247/

相关文章:

java - 从源 (Git) 提取单个文件

java - 在 Java (Eclipse) 中同时运行函数

c++ - 如何存储模板类型以供以后分配使用?

c# - 如何知道 C# 中属性位置的层次结构?

eclipse - 无法将 IBM WebSphere MQ Explorer 安装到 Eclipse Luna SR2 (4.4.2)

java - Checkstyle安装报错Intellij Idea

java - Camel Jetty 将使用 Spring Boot 端口

eclipse-plugin - 在 eclipse luna 中安装 Glassfish 工具

java - 是否可以创建一个空的类加载器?

java - 插件在 Eclipse 中不生效