2012-08-07 41 views
0

我正在编写查找所有源文件中的未解析导入的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); 
} 

弗罗姆here

我不知道我怎样才能从IProblemIMarker哪些进口导致编译问题(未解决进口)获取信息。

任何帮助?

回答

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相匹配就可以导入失败。

+0

但我怎么能从IMarker获得有关错误的信息? IMarker有'getId()'方法,但它完全不是'IProblem.ImportNotFound'。 – bontade 2012-08-08 12:24:15

0

的IMarker知道行号和由IMarker标志着Java源开始和停止字符。您可以使用java源字符串的子字符串,如果标记类型指示它是类或导入的问题,则可以在项目的类路径中搜索与该子字符串匹配(或类似)的类或包。

+0

如果这没有解决您的问题,请让我知道,我会删除答案。我不想混淆未来的读者。 – 2012-08-15 18:41:01