我正在开发 eclipse 插件,所以我找到了 api 文档并在谷歌上搜索它们,它只包含带有 ICompilationUnit 的 isClass() isInterface() 这样的方法,但我想深入挖掘抽象类,代码如
public boolean isAbstract(ICompilationUnit icu) {
//TODO
}
有谁能够帮助我?
我正在开发 eclipse 插件,所以我找到了 api 文档并在谷歌上搜索它们,它只包含带有 ICompilationUnit 的 isClass() isInterface() 这样的方法,但我想深入挖掘抽象类,代码如
public boolean isAbstract(ICompilationUnit icu) {
//TODO
}
有谁能够帮助我?
首先,您需要一个 的实例org.eclipse.jdt.core.IType
,因为一个实例ICompilationUnit
可以包含多种类型。ICompilationUnit.getTypes()
将为您提供本单元中所有类型的列表。ICompilationUnit.findPrimaryType()
将为您提供此单元的主要类型。
您的例程应如下所示:
public boolean isAbstract(ICompilationUnit icu) throws JavaModelException {
final IType type = icu.findPrimaryType();
return (type != null)
? Flags.isAbstract(type.getFlags())
: false;
}
Flags
在哪里org.eclipse.jdt.core.Flags
。