我在两个库中收到以下警告:
在
import org.eclipse.ui.internal.Workbench;
Discouraged acces: The type Workbench is not accessible due to restriction on required library org.eclipse.ui.workbench_3.8.0
at
import org.eclipse.jdt.internal.core.PackageFragmentRoot;
Discouraged acces: The type PackageFragmentRoot is not accessible due to restriction on required library org.eclipse.jdt.core_3.8.1
造成这种情况的原因是什么?如何解决这个问题?
答案 0 :(得分:2)
您收到这些错误是因为您要导入标记为内部的包;
import org.eclipse.ui.**internal**.Workbench
这表明它们不打算从外部使用,实施可能会在没有任何通知的情况下彻底改变,这可能会导致您的应用程序失败。如果该功能旨在可供其他人使用,则通常会有一个可以使用的公共可用API。
您的选择是;
通常我会强烈鼓励选项1,甚至不建议选项2,但Eclipse有时会如何定义内部包有点奇怪。我曾几次被迫使用内部包裹。
在您的情况下看起来org.eclipse.ui.IWorkbench
和org.eclipse.jdt.core.IPackageFragmentRoot
应该更合适。