本文介紹了Eclipse JDT:如何獲取Java Content Assist的數據模型的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
在Eclipse IDE上編寫Java代碼時,按Control+Space將彈出內容輔助窗口。
例如,System.
的內容輔助窗口將列出類System的所有可用字段和方法。
我需要通過代碼訪問內容輔助窗口的”數據模型”。
使用上面的示例是:給定類名System
,如何檢索所有可用的字段和方法?
我在grepcode.com上花了一些時間研究這三個類的源代碼:
org.eclipse.jdt.ui.text.java.JavaContentAssistInvocationContext
org.eclipse.jdt.internal.ui.text.java.JavaCompletionProposalComputer
org.eclipse.jdt.ui.text.java.CompletionProposalCollector
它看起來像是使用anICompilationUnit
實例來提供字段和方法名稱。
那么我不明白如何為jre系統庫或第三方庫中的類生成ICompilationUnit
實例?或者,如果我沒有以正確的方式閱讀代碼,那么程序是如何找到字段和方法名稱的呢?(我不需要擔心偏移量和UI,只需要擔心”數據模型”部分)。
JAVA
似乎唯一的選擇是創建一個(臨時)編譯單元,而這又需要一個正確設置的推薦答案項目。JDT必須使用基礎結構才能知道使用了哪個JRE、使用了哪些編譯器設置等。
請參閱here如何設置Java項目和here如何獲取編譯單元。
編譯單元應該類似于
class Foo {
void bar() {
java.lang.System.
}
}
和codeComplete()
調用時必須使用表示緊接在System.
之后的位置的偏移量。
這篇關于Eclipse JDT:如何獲取Java Content Assist的數據模型的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,