2012-08-07 149 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