在java开源框架中编辑一个类的最佳方法

时间:2017-09-03 19:27:58

标签: java inheritance

我正在使用开源框架(确切地说是libGDX),但是我想编辑一个类的内部行为并按原样使用框架的其余部分。问题是,当我扩展它时,我无法访问该类的受保护成员。我不知道反射是否是游戏的最佳选择。该类用于框架的其他类,我也想使用它们。

编辑:发现成员只受到保护(原始问题包括私人成员),但我无法在包裹外访问它们

1 个答案:

答案 0 :(得分:3)

三个选项:

  • 您建议修补该库背后的社区。尝试说服所有者更改他们的代码 - 以便以合理的方式解决您的问题
  • 您创建自己的私人分叉。它是开源的!
  • 是的,您可以使用反射。这是最后一个因为反映很容易出错并且一旦有人开始使用安全管理器就会中断 - 或者当库所有者进行更改(例如重命名类或字段)时。有关详细信息,请参阅here
  • 使用继承,您必须在项目内创建与目标类包名称匹配的包。在那里创建子类,以便您可以访问受保护的成员。 我认为很明显哪个选项对你更好 - 虽然最初意味着更多的工作来说服人们你的想法是有价值的。

或者你可能会问自己,你的想法是不是一个好主意。也许你只是不明白如何正确使用该库?但鉴于你目前的意见,我们无法帮助你......