我有一个类的IType对象。我想知道这个类是否是一个抽象类。 IType或ICompilationUnit中是否有任何可用的方法来确定相同的(反射除外)。
答案 0 :(得分:8)
IType type = ...;
boolean isAbstract = Flags.isAbstract(type.getFlags());
答案 1 :(得分:1)
您可以获取IType的完全限定名称(可能使用IType.getTypeQualifiedName()),然后在该名称上使用Class.forName()来获取Class对象,然后像其他人推荐的那样使用Modifier.isAbstract()。
Java的Class对象是反射套件的一部分,所以这种方式仍然有点使用反射......
答案 2 :(得分:0)
Class clazz = IType.class;
Modifier.isAbstract(clazz.getModifiers())
答案 3 :(得分:0)
添加以下导入:
import java.lang.reflect.Modifier;
然后用以下方法测试:
if(Modifier.isAbstract(IType.class.getModifiers()))
//do something...