为什么我们不使用内部库而使用原始库?

Why should we not use Internal libraries and use original library?

我在我的项目中使用了 Guava 内部库:

import org.glassfish.jersey.internal.guava.HashBasedTable;
import org.glassfish.jersey.internal.guava.Table;

建议我不要使用这些内部的而使用原始库。

是否有不使用内部构件的具体原因,我是说有任何法律问题?

内部包并不意味着图书馆的客户可以直接使用。

库的开发者没有义务保持内部包向后兼容,他们甚至可能在未来的版本中删除一些类内部包,并用其他的替代。

如果您的代码依赖于内部包,当您升级到库的未来版本时,它很可能会崩溃。

使用内部库的问题通常不在于法律限制,而在于可支持性和兼容性。

内部库被设计为内部库,它们的作者和维护者将它们视为内部库,因为它们可能会在不通知的情况下进行重大更改(甚至完全删除功能)。如果您升级正在使用的库,使用此类库的应用程序可能会中断。