得到未解决的导入

时间:2012-08-07 17:02:39

标签: java eclipse eclipse-plugin

我正在编写eclipse插件,在所有源文件中查找未解析的导入。 我发现使用IProblemIMarker对象会很有帮助。这是代码示例

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

我不知道如何从IProblemIMarker获取有关哪个导入导致编译问题(未解析导入)的信息。

任何帮助?

2 个答案:

答案 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源字符串的子字符串,如果标记类型指示它是类或导入的问题,您可以在项目的类路径中搜索与该子字符串匹配(或类似)的类或包。