如何在Java中重写库方法?
我正在做一个大型的Android项目,它正在使用。方法如何在Java中重写库方法?,java,android,methods,overriding,Java,Android,Methods,Overriding,我正在做一个大型的Android项目,它正在使用。方法fromJson()在许多文件中被调用了几十次。每次调用此方法时,我都需要提供一些特殊的案例测试 我不想在每次使用这个方法时都进行重复测试,而是想遵循原则,简单地以某种方式覆盖fromJson()方法 我的第一个想法是创建一个Gson的子类并重写该方法,但是我仍然需要做几十个(也许几百个)的更改才能使其工作。但即使我愿意做这项工作,Gson也是最终的,因此无法扩展 第二个想法:修改Gson库代码是可能的。但我不想走这条路,因为我担心我可能会弄
fromJson()
在许多文件中被调用了几十次。每次调用此方法时,我都需要提供一些特殊的案例测试
我不想在每次使用这个方法时都进行重复测试,而是想遵循原则,简单地以某种方式覆盖fromJson()
方法
我的第一个想法是创建一个Gson的子类并重写该方法,但是我仍然需要做几十个(也许几百个)的更改才能使其工作。但即使我愿意做这项工作,Gson也是最终的,因此无法扩展
第二个想法:修改Gson库代码是可能的。但我不想走这条路,因为我担心我可能会弄坏一些本来可以完美工作的东西
这是我以前从未涉足过的Java领域。有人有什么建议吗?既然没有人回应,我就自己回答 如果库类/方法被声明为final,那么关键是永远不要继承或重写所述类。因为它是一个库(我没有访问源代码的权限),所以没有办法改变它
- 解决方案1:编写自己的库。这当然会击败 使用图书馆的全部目的(避免重新发明 车轮)
- 解决方案2:找到一个解决方案。这听起来很有意思,但这是 也许是最合理的选择
- 解决方案#3:面对缺陷/错误/缺少功能。不是全部 问题是表演的障碍。你可能会有一个很棒的节目 这仍然没有达到每一个期望的细节
- 解决方案4:放弃该项目。有时这可能是一个可行的方法 选项但现在对我来说不是