gpt4 book ai didi

java - 从 Eclipse 插件的独立 java 文件中获取 ICompilationUnit/ITypeRoot

转载 作者:行者123 更新时间:2023-11-29 08:39:55 25 4
gpt4 key购买 nike

我正在破解一个 Eclipse 插件,该插件非常适合 Java 项目中的 Java 文件。我想让它适用于任何类型项目中的 Java 文件。

此插件将每个 Java 文件作为一个 ICompilationUnit 进行处理。但是,在我的方法中,我只能获得 IFile 的实例。

我如何从这个 IFile 对象创建一个 ICompilationUnit

作为替代方案,ITypeRoot 也可能有效。我已经看到这是使用以下内容直接从编辑器创建的:

IJavaElement input= JavaUI.getEditorInputJavaElement(editorInput);
if (input instanceof ITypeRoot) {
return (ITypeRoot) input;
}

这种方法甚至适用于非 Java 项目(来自在编辑器中打开的通用项目/目录的 java 文件),这让我相信可以直接对文件实现类似的东西。

最佳答案

JavaCore.create(IFile) 将返回一个 ICompilationUnit 如果它适合文件:

IFile file = ...

IJavaElement element = JavaCore.create(file);

if (element instanceof ICompilationUnit) {
ICompilationUnit compUnit = (ICompilationUnit)element;

...
}

可能会返回其他对象,例如 .class 文件的 IClassFile

关于java - 从 Eclipse 插件的独立 java 文件中获取 ICompilationUnit/ITypeRoot,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41066054/

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