如何用ICompilationUnit判断抽象类

时间:2012-04-06 16:09:46

标签: eclipse-rcp eclipse-jdt

我正在开发eclipse插件开发,所以我找到api docs和google它们,它只包含这样的方法isClass()isInterface()与ICompilationUnit,但我想深入挖掘抽象类,代码像

public boolean isAbstract(ICompilationUnit icu) {
   //TODO
}

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:2)

首先,您需要一个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;
}

其中Flagsorg.eclipse.jdt.core.Flags