在我们的框架中,我们在公共API中有一个与此方法的接口:
JaxbConfiguration newJaxbConfiguration(Options xjcOpts);
在实施中,我们做了类似的事情:
import com.sun.tools.xjc.ModelLoader;
import com.sun.tools.xjc.Options;
import com.sun.tools.xjc.model.Model;
...
public JaxbConfiguration newJaxbConfiguration(Options xjcOpts) {
Model model = ModelLoader.load(xjcOpts, ...);
...
}
然而,OSGi和Java 9的拼图都不喜欢我们使用com.sun.tools.xjc.Options
,而不是我们的实现,特别是我们的公共API接口。
我们怎样摆脱它?
答案 0 :(得分:2)
JDeps website列出了一些JDK内部API以及替换其用法的推荐方法。但是,未提及ModelLoader.load()的使用。我的猜测是这个用例还不足以引起JDeps团队的注意。
我的建议是重构这个方法,以便
你没有提到JaxbConfiguration是什么或它是什么库所以我很难确切地说如何构建它。无论如何,这个答案是关于如何删除内部API的使用。如何构造JaxbConfiguration可能是一个不同的问题。