0

我正在编写 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);
}

这里

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

有什么帮助吗?

4

2 回答 2

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 之一匹配。

于 2012-08-07T17:05:21.150 回答
0

IMarker 知道 IMarker 标记的 java 源代码的行号和开始和停止字符。您可以获取 java 源字符串的子字符串,如果标记类型表明类或导入有问题,您可以在项目的类路径中搜索与该子字符串匹配(或类似)的类或包。

于 2012-08-07T18:56:07.477 回答