Узнайте, являются ли два класса одного типа (Class, Interface, Enum и т. Д.), Используя java reflek - PullRequest
1 голос
/ 26 ноября 2011

Как дела?

Я буду коротким и сладким. Как я могу определить, являются ли два класса одного типа. Под типом я подразумеваю, если они оба определены как Класс, Интерфейс, Enum, Annotion или любой другой.

1 Ответ

5 голосов
/ 26 ноября 2011

Следующие методы доступны на java.lang.Class :

 boolean    isAnnotation() 
          Returns true if this Class object represents an annotation type.
 boolean    isAnnotationPresent(Class<? extends Annotation> annotationClass) 
          Returns true if an annotation for the specified type is present on this element, else false.
 boolean    isAnonymousClass() 
          Returns true if and only if the underlying class is an anonymous class.
 boolean    isArray() 
          Determines if this Class object represents an array class.
 boolean    isAssignableFrom(Class<?> cls) 
          Determines if the class or interface represented by this Class object is either the same as, or is a superclass or superinterface of, the class or interface represented by the specified Class parameter.
 boolean    isEnum() 
          Returns true if and only if this class was declared as an enum in the source code.
 boolean    isInstance(Object obj) 
          Determines if the specified Object is assignment-compatible with the object represented by this Class.
 boolean    isInterface() 
          Determines if the specified Class object represents an interface type.
 boolean    isLocalClass() 
          Returns true if and only if the underlying class is a local class.
 boolean    isMemberClass() 
          Returns true if and only if the underlying class is a member class.
 boolean    isPrimitive() 
          Determines if the specified Class object represents a primitive type.
 boolean    isSynthetic() 

Выберите.

...