gpt4 book ai didi

java - 如何覆盖 Java 中的库方法?

转载 作者:行者123 更新时间:2023-11-30 11:02:50 24 4
gpt4 key购买 nike

我正在开发一个使用 Gson 的大型 Android 项目. fromJson() 方法在许多文件中被调用了数十次。每次调用此方法时,我都需要提供一些特殊情况测试。

与其在每次使用此方法时都进行并重复测试,不如按照 DRY 进行操作学说并以某种方式简单地覆盖 fromJson() 方法。

我的第一个想法是创建一个 Gson 的子类并重写该方法,但我仍然需要进行几十个(也许数百个)更改才能使其工作。但即使我愿意做这项工作,Gson 也是 final,因此无法扩展。

第二个想法:或许可以更改 Gson 库代码。但我不想走这条路,因为我担心我可能会破坏一些本来可以完美运行的东西。

这是我以前从未涉足的 Java 领域。有人有什么建议吗?

最佳答案

由于没有回复,我将继续并给出我自己的答案。

如果库类/方法被声明为final,重点是永远不要继承或重写该类。由于它是一个库(我无权访问源代码),因此无法更改它。

  • 解决方案 #1:编写我自己的库。这当然打败了使用库的全部目的(避免重新发明轮)。

  • 解决方案 #2:寻找解决方法。听起来很骇人听闻,但这是可能是最合理的选择。

  • 解决方案 #3:接受错误/错误/缺少功能。不是全部问题是阻碍。你也许可以有一个很棒的程序仍然没有达到所有需要的细节。

  • 解决方案 #4:放弃项目。有时这可能是可行的选项。但现在不适合我。

关于java - 如何覆盖 Java 中的库方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30632868/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com