gpt4 book ai didi

eclipse-jdt - JDT SearchEngine 抛出 NullPointerException

转载 作者:行者123 更新时间:2023-12-01 14:57:19 25 4
gpt4 key购买 nike

我正在尝试使用 JDT SearchEngine 查找对给定对象的引用。但是我在调​​用 org.eclipse.jdt.core.search.SearchEngine 的“搜索”方法时遇到“NullPointerException”。

错误轨迹如下:

java.lang.NullPointerException at org.eclipse.jdt.internal.core.search.BasicSearchEngine.findMatches(BasicSearchEngine.java:214) at org.eclipse.jdt.internal.core.search.BasicSearchEngine.search(BasicSearchEngine.java:515) at org.eclipse.jdt.core.search.SearchEngine.search(SearchEngine.java:582)

下面是我用来执行搜索的方法:

private static void search(String elementName) { //elementName -> a method Name
try {
SearchPattern pattern = SearchPattern.createPattern(elementName, IJavaSearchConstants.METHOD,
IJavaSearchConstants.REFERENCES, SearchPattern.R_PATTERN_MATCH);

IJavaSearchScope scope = SearchEngine.createWorkspaceScope();

SearchRequestor requestor = new SearchRequestor() {
@Override
public void acceptSearchMatch(SearchMatch match) {
System.out.println("Element - " + match.getElement());
}
};

SearchEngine searchEngine = new SearchEngine();
SearchParticipant[] searchParticipants = new SearchParticipant[] { SearchEngine
.getDefaultSearchParticipant() };
searchEngine.search(pattern, searchParticipants, scope, requestor, null);
} catch (Exception e) {
e.printStackTrace();
}
}

请引用以下快照的“变量”窗口来检查传递给“searchEngine.search()”的参数值:

enter image description here

我认为这个问题是因为“范围”的值(value)[在上面的“黑色”中突出显示]。这意味着“SearchEngine.createWorkspaceScope()”在这种情况下不会返回预期值。

注意:请注意,这是我的程序的一部分,它作为独立的 Java 程序(不是 eclipse 插件)运行,使用 JDT API 来解析给定的源代码(使用 JDT- AST)。

在这种情况下是否可以使用 JDT SearchEngine(非 eclipse 插件程序),还是由于其他原因导致此问题?非常感谢您对此的回答。

最佳答案

没有。如果不打开工作区,则无法使用搜索引擎。原因是 SearchEngine 依赖于 eclipse 文件系统抽象(IResourceIFileIFolder 等)。这仅在工作区打开时可用。

关于eclipse-jdt - JDT SearchEngine 抛出 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14019761/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com