我正在编写eclipse插件,在所有源文件中查找未解析的导入。
我发现使用IProblem
或IMarker
对象会很有帮助。这是代码示例
public IMarker[] findJavaProblemMarkers(ICompilationUnit cu)
throws CoreException {
IResource javaSourceFile = cu.getUnderlyingResource();
IMarker[] markers =
javaSourceFile.findMarkers(IJavaModelMarker.JAVA_MODEL_PROBLEM_MARKER,
true, IResource.DEPTH_INFINITE);
}
frome here
我不知道如何从IProblem
或IMarker
获取有关哪个导入导致编译问题(未解析导入)的信息。
任何帮助?
答案 0 :(得分:0)
http://help.eclipse.org/indigo/index.jsp?topic=/org.eclipse.jdt.doc.isv/guide/jdt_api_classpath.htm
IProblem接口中有一个不同的int值列表,表示不同的错误;如果你能以某种方式得到文件的错误代码,你可以使用它们。 (例如,ImportNotVisible,ImportNotFound等)。只需检查错误ID是否与导入失败的错误ID之一匹配。
答案 1 :(得分:0)
IMarker知道由IMarker标记的java源的行号和启动和停止字符。您可以获取java源字符串的子字符串,如果标记类型指示它是类或导入的问题,您可以在项目的类路径中搜索与该子字符串匹配(或类似)的类或包。