Eclipse JDT: how to get data model for Java content assist(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的数据模型的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:Eclipse JDT:如何获取Java Content Assist的数据模型
基础教程推荐
- 由于对所需库 rt.jar 的限制,对类的访问限制? 2022-01-01
- Spring Boot Freemarker从2.2.0升级失败 2022-01-01
- 如何对 HashSet 进行排序? 2022-01-01
- 如何在不安装整个 WTP 包的情况下将 Tomcat 8 添加到 Eclipse Kepler 2022-01-01
- 如何强制对超级方法进行多态调用? 2022-01-01
- 如何使用 Eclipse 检查调试符号状态? 2022-01-01
- 首次使用 Hadoop,MapReduce Job 不运行 Reduce Phase 2022-01-01
- Java 中保存最后 N 个元素的大小受限队列 2022-01-01
- 在螺旋中写一个字符串 2022-01-01
- 如何使用 Stream 在集合中拆分奇数和偶数以及两者的总和 2022-01-01