Wenn Sie Java-Code in Eclipse IDE schreiben, drücken Sie Control + Space öffnet das Inhaltshilfsfenster.
Zum Beispiel listet das Inhaltshilfsfenster für System.
alle verfügbaren Felder und Methoden für die Klasse System auf.Eclipse JDT: So erhalten Sie ein Datenmodell für Java content assist
Ich muss auf das "Datenmodell" für das Inhaltshilfsfenster nach Code zugreifen.
Verwenden Sie das obige Beispiel: Wie kann ich mit dem Klassennamen System
alle verfügbaren Felder und Methoden abrufen?
Ich verbrachte einige Zeit auf den Quellcode dieser drei Klassen auf grepcode.com:
org.eclipse.jdt.ui.text.java.JavaContentAssistInvocationContext
org.eclipse.jdt.internal.ui.text.java.JavaCompletionProposalComputer
org.eclipse.jdt.ui.text.java.CompletionProposalCollector
Es ist wie die einer ICompilationUnit
Instanz sieht verwendet, um die Felder und Methodennamen zur Verfügung zu stellen.
Dann verstehe ich nicht, wie die ICompilationUnit
Instanz für eine Klasse in JRE-System-Bibliothek oder Third-Party-Bibliothek zu generieren? Oder wenn ich den Code nicht richtig gelesen habe, wie hat das Programm dann die Felder und Methoden gefunden? (Ich muss mir keine Gedanken über den Offset- und UI-Inhalt machen, nur den Teil "Datenmodell").
ICompilationUnit ist Teil des JDT [Abstract Syntax Tree] (http://www.vogella.com/tutorials/EclipseJDT/article.html) –