如何查找IType是否为抽象类

时间:2013-03-13 06:36:40

标签: java eclipse-jdt

我有一个类的IType对象。我想知道这个类是否是一个抽象类。 IType或ICompilationUnit中是否有任何可用的方法来确定相同的(反射除外)。

4 个答案:

答案 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...