2013-03-13 11 views
6

私はクラスのITypeオブジェクトを持っています。クラスが抽象クラスかどうかを知りたい ITypeまたはICompilationUnitで同じものを判別するためのメソッドがありますか(リフレクションを除く)。ITypeが抽象クラスであるかどうかを調べる方法

+0

あなたは日食・プラグインをタグ付け、これらの人は理解されるよりも、他の問題がありますか? – OQJF

答えて

0
Class clazz = IType.class; 
Modifier.isAbstract(clazz.getModifiers()) 
+0

'IType'自体が抽象クラスであるかどうか尋ねなかったので、Eclipseワークスペース(' IType'で表されるクラス)が抽象クラスであるかどうかを調べる方法を尋ねました。 –

0

次のインポートを追加します。

import java.lang.reflect.Modifier; 

そして、次でそれをテストします。

if(Modifier.isAbstract(IType.class.getModifiers())) 
    //do something... 
+0

彼は 'IType'自体が抽象クラスであるかどうか尋ねなかったので、Eclipseワークスペース(' IType'で表されるクラス)が抽象クラスであるかどうかを調べる方法を尋ねました。 –

1

あなたが(多分IType.getTypeQualifiedName()を使用して)ITYPEの完全修飾名を得ることができますその名前のClass.forName()を使用してClassオブジェクトを取得し、Modifier.isAbstract()を使用します。

Javaのクラスのオブジェクトが反射スイートの一部であるので、この方法では、まだちょっとリフレクションを使用しています...

8
IType type = ...; 
boolean isAbstract = Flags.isAbstract(type.getFlags()); 
関連する問題