gpt4 book ai didi

java - 扩展 Java 第三方 API

转载 作者:行者123 更新时间:2023-11-30 09:30:46 27 4
gpt4 key购买 nike

它更可能是一个主观问题。我想创建第三方 API 的子类来自定义行为,但问题是 API 类中的方法之一具有默认访问说明符,并且我不允许重写,因为我的子类不在同一个包中.

但是,如果我想要一个解决方案,我可以将我的子类放在与 API 类相同的包中,并扩展具有默认访问说明符的方法。第三方 jar 文件根据宽松的 X11 类型许可(类似于 MIT 许可)获得许可

我正在寻找以下问题的答案

  1. Is that legal to create subclass outside third party jar( different jar file) but maintaining similar package conversion?

  2. Any known issue with this approach (even though same package name, I kept in two jars)( i just tested with stand alone unit test)

  3. How Class loaders of app servers behave in such scenario ( which jar file will be loaded first)

如果我的与许可证相关的查询 (1) 不适用于此处,我们深表歉意。

提前致谢。

最佳答案

对于 (1):X11 许可证基本上说你可以用软件做任何事情,只要你相信作者并且不起诉他们违反保证。您的建议没有任何违法之处。

虽然您的建议应该有效,但它很老套。问题是第三方库对其部分 API 使用了过于严格的访问规范。最好的方法是向开源项目提交补丁

你的补丁应该简单地将有问题的方法指定为 protected 而不是 package-private,这将允许它被子类调用(以及库包中的其他类,因为 protected 包括包私有(private)访问)。这样,它还可以帮助库的其他用户扩展该类。

关于java - 扩展 Java 第三方 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13117083/

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