6

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

4

4 回答 4

9
IType type = ...;
boolean isAbstract = Flags.isAbstract(type.getFlags());
于 2013-03-13T13:59:02.120 回答
1

您可以获取 IType 的完全限定名称(可能使用 IType.getTypeQualifiedName()),然后在该名称上使用 Class.forName() 来获取 Class 对象,然后按照其他人的建议使用 Modifier.isAbstract()。

Java 的 Class 对象是反射套件的一部分,所以这种方式仍然有点使用反射......

于 2013-03-13T09:07:40.737 回答
0
Class clazz = IType.class;
Modifier.isAbstract(clazz.getModifiers())
于 2013-03-13T06:42:56.857 回答
0

添加以下导入:

import java.lang.reflect.Modifier;

然后使用以下方法对其进行测试:

if(Modifier.isAbstract(IType.class.getModifiers()))
    //do something...
于 2013-03-13T06:44:29.600 回答