2013-03-13 12 views
6

Ho l'oggetto IType di una classe. Voglio sapere se la classe è una classe astratta o no. Esiste un metodo disponibile in IType o ICompilationUnit per determinare lo stesso (diverso dal riflesso).Come trovare se l'IType è una classe astratta

+0

ti ha taggato eclipse-plugin, c'è qualche altro problema di questi ragazzi capito? – OQJF

risposta

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

Non ha chiesto se 'IType' è esso stesso una classe astratta, ha chiesto come stabilire se una classe nello spazio di lavoro Eclipse (rappresentato da un' IType') è astratta. –

0

Aggiungere la seguente importazione:

import java.lang.reflect.Modifier; 

quindi verificarlo con il seguente:

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

Non ha chiesto se 'IType' è esso stesso una classe astratta, ha chiesto come stabilire se una classe nello spazio di lavoro Eclipse (rappresentato da un' IType') è astratta. –

1

Si potrebbe ottenere il nome completo del IType (magari usando IType.getTypeQualifiedName()) , quindi usa Class.forName() su quel nome per ottenere l'oggetto Class, quindi usa Modifier.isAbstract() come altri hanno raccomandato.

oggetto Class di Java fa parte della suite di riflessione, così in questo modo utilizza ancora un pò di riflessione ...

8
IType type = ...; 
boolean isAbstract = Flags.isAbstract(type.getFlags()); 
Problemi correlati