![](/img/trans.png)
[英]SBT: add third party library dependency but NoClassDefFoundError
[英]Is it bad practice to add a class to a third party dependency/package? (java)
我有一个来自第三方依赖项的交互客户端,需要使用我提供的服务。 有些行为不适合我的用例,我想尝试扩展或只是为其重写适配器,但是我需要的许多方法或变量都受到了保护。 我应该只编写一个属于该软件包的类来访问那些类吗? 我从来没有听过它明确声明不这样做,但是这似乎挫败了首先拥有一个软件包的目的。
我会说这是一个非常糟糕的主意。 您绝不应该以任何方式修改第三方JAR。 您最好考虑将它们密封。
原因有两个:
您可以自由扩展第三方类,只要它没有被标记为final
。 但这将成为您代码的一部分。 您可以随时使用该第三方JAR的新版本。
如果方法和变量受保护,则可以使用自己的实现扩展该类。 子类能够访问父类的受保护变量和属性。
您的实现无需位于同一软件包中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.