Package java.lang

Class Class<T>

  • All Implemented Interfaces:
    Serializable, AnnotatedElement, GenericDeclaration, Type

    public final class Class<T>
    extends Object
    implements Serializable, AnnotatedElement, GenericDeclaration, Type
    The in-memory representation of a Java class. This representation serves as the starting point for querying class-related information, a process usually called "reflection". There are basically three types of Class instances: those representing real classes and interfaces, those representing primitive types, and those representing array classes.

    Class instances representing object types (classes or interfaces)

    These represent an ordinary class or interface as found in the class hierarchy. The name associated with these Class instances is simply the fully qualified class name of the class or interface that it represents. In addition to this human-readable name, each class is also associated by a so-called descriptor, which is the letter "L", followed by the class name and a semicolon (";"). The descriptor is what the runtime system uses internally for identifying the class (for example in a DEX file).

    Classes representing primitive types

    These represent the standard Java primitive types and hence share their names (for example "int" for the int primitive type). Although it is not possible to create new instances based on these Class instances, they are still useful for providing reflection information, and as the component type of array classes. There is one Class instance for each primitive type, and their descriptors are:

    • B representing the byte primitive type
    • S representing the short primitive type
    • I representing the int primitive type
    • J representing the long primitive type
    • F representing the float primitive type
    • D representing the double primitive type
    • C representing the char primitive type
    • Z representing the boolean primitive type
    • V representing void function return values

    Classes representing array classes

    These represent the classes of Java arrays. There is one such Class instance per combination of array leaf component type and arity (number of dimensions). In this case, the name associated with the Class consists of one or more left square brackets (one per dimension in the array) followed by the descriptor of the class representing the leaf component type, which can be either an object type or a primitive type. The descriptor of a Class representing an array type is the same as its name. Examples of array class descriptors are:

    • [I representing the int[] type
    • [Ljava/lang/String; representing the String[] type
    • [[[C representing the char[][][] type (three dimensions!)
    See Also:
    Serialized Form
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      <U> Class<? extends U> asSubclass​(Class<U> c)
      Casts this Class to represent a subclass of the given class.
      T cast​(Object obj)
      Casts the given object to the type represented by this Class.
      boolean desiredAssertionStatus()
      Returns the assertion status for the class represented by this Class.
      static Class<?> forName​(String className)
      Returns a Class object which represents the class with the given name.
      static Class<?> forName​(String className, boolean shouldInitialize, ClassLoader classLoader)
      Returns a Class object which represents the class with the given name.
      <A extends Annotation>
      A
      getAnnotation​(Class<A> annotationType)
      Returns, for this element, the annotation with the specified type, or null if no annotation with the specified type is present (including inherited annotations).
      Annotation[] getAnnotations()
      Returns an array containing all the annotations of this class.
      String getCanonicalName()
      Returns the canonical name of this class.
      Class<?>[] getClasses()
      Returns an array containing Class objects for all public classes, interfaces, enums and annotations that are members of this class and its superclasses.
      ClassLoader getClassLoader()
      Returns the class loader which was used to load the class represented by this Class.
      Class<?> getComponentType()
      Returns a Class object which represents the component type if this class represents an array type.
      Constructor<T> getConstructor​(Class<?>... parameterTypes)
      Returns a Constructor object which represents the public constructor matching the given parameter types.
      Constructor<?>[] getConstructors()
      Returns an array containing Constructor objects for all public constructors for this Class.
      Annotation[] getDeclaredAnnotations()
      Returns the annotations that are directly defined on the class represented by this Class.
      Class<?>[] getDeclaredClasses()
      Returns an array containing Class objects for all classes, interfaces, enums and annotations that are members of this class.
      Constructor<T> getDeclaredConstructor​(Class<?>... parameterTypes)
      Returns a Constructor object which represents the constructor matching the specified parameter types that is declared by the class represented by this Class.
      Constructor<?>[] getDeclaredConstructors()
      Returns an array containing Constructor objects for all constructors declared in the class represented by this Class.
      Field getDeclaredField​(String name)
      Returns a Field object for the field with the given name which is declared in the class represented by this Class.
      Field[] getDeclaredFields()
      Returns an array containing Field objects for all fields declared in the class represented by this Class.
      Field[] getDeclaredFieldsUnchecked​(boolean publicOnly)
      Populates a list of fields without performing any security or type resolution checks first.
      Method getDeclaredMethod​(String name, Class<?>... parameterTypes)
      Returns a Method object which represents the method matching the specified name and parameter types that is declared by the class represented by this Class.
      Method[] getDeclaredMethods()
      Returns an array containing Method objects for all methods declared in the class represented by this Class.
      Method[] getDeclaredMethodsUnchecked​(boolean publicOnly)
      Populates a list of methods without performing any security or type resolution checks first.
      Class<?> getDeclaringClass()
      Returns the class that this class is a member of, or null if this class is a top-level class, a primitive, an array, or defined within a method or constructor.
      Dex getDex()
      Returns the dex file from which this class was loaded.
      int getDexAnnotationDirectoryOffset()
      The annotation directory offset of this class in its own Dex, or 0 if it is unknown.
      String getDexCacheString​(Dex dex, int dexStringIndex)
      Returns a string from the dex cache, computing the string from the dex file if necessary.
      Class<?> getDexCacheType​(Dex dex, int dexTypeIndex)
      Returns a resolved type from the dex cache, computing the type from the dex file if necessary.
      int getDexClassDefIndex()
      The class def of this class in its own Dex, or -1 if there is no class def.
      int getDexTypeIndex()
      The type index of this class in its own Dex, or -1 if it is unknown.
      Class<?> getEnclosingClass()
      Returns the class enclosing this class.
      Constructor<?> getEnclosingConstructor()
      Returns the enclosing Constructor of this Class, if it is an anonymous or local/automatic class; otherwise null.
      Method getEnclosingMethod()
      Returns the enclosing Method of this Class, if it is an anonymous or local/automatic class; otherwise null.
      T[] getEnumConstants()
      Returns the enum constants associated with this Class.
      Field getField​(String name)
      Returns a Field object which represents the public field with the given name.
      Field[] getFields()
      Returns an array containing Field objects for all public fields for the class C represented by this Class.
      Type[] getGenericInterfaces()
      Returns the Types of the interfaces that this Class directly implements.
      Type getGenericSuperclass()
      Returns the Type that represents the superclass of this class.
      Class<?>[] getInterfaces()
      Returns an array of Class objects that match the interfaces in the implements declaration of the class represented by this Class.
      Method getMethod​(String name, Class<?>... parameterTypes)
      Returns a Method object which represents the public method with the specified name and parameter types.
      Method[] getMethods()
      Returns an array containing Method objects for all public methods for the class C represented by this Class.
      int getModifiers()
      Returns an integer that represents the modifiers of the class represented by this Class.
      String getName()
      Returns the name of the class represented by this Class.
      Package getPackage()
      Returns the Package of which the class represented by this Class is a member.
      String getPackageName$()
      Returns the package name of this class.
      ProtectionDomain getProtectionDomain()
      Returns null.
      URL getResource​(String resourceName)
      Returns the URL of the given resource, or null if the resource is not found.
      InputStream getResourceAsStream​(String resourceName)
      Returns a read-only stream for the contents of the given resource, or null if the resource is not found.
      Object[] getSigners()
      Returns null.
      String getSimpleName()
      Returns the simple name of the class represented by this Class as defined in the source code.
      Class<? super T> getSuperclass()
      Returns the Class object which represents the superclass of the class represented by this Class.
      TypeVariable<Class<T>>[] getTypeParameters()
      Returns an array containing TypeVariable objects for type variables declared by the generic class represented by this Class.
      boolean isAnnotation()
      Tests whether this Class represents an annotation class.
      boolean isAnnotationPresent​(Class<? extends Annotation> annotationType)
      Indicates whether or not this element has an annotation with the specified annotation type (including inherited annotations).
      boolean isAnonymousClass()
      Tests whether the class represented by this Class is anonymous.
      boolean isArray()
      Tests whether the class represented by this Class is an array class.
      boolean isAssignableFrom​(Class<?> c)
      Can c be assigned to this class?
      boolean isEnum()
      Tests whether the class represented by this Class is an enum.
      boolean isFinalizable()
      Indicates whether this Class or its parents override finalize.
      boolean isInstance​(Object object)
      Tests whether the given object can be cast to the class represented by this Class.
      boolean isInterface()
      Tests whether this Class represents an interface.
      boolean isLocalClass()
      Tests whether the class represented by this Class is defined locally.
      boolean isMemberClass()
      Tests whether the class represented by this Class is a member class.
      boolean isPrimitive()
      Tests whether this Class represents a primitive type.
      boolean isProxy()
      Is this a runtime created proxy class?
      boolean isSynthetic()
      Tests whether this Class represents a synthetic type.
      T newInstance()
      Returns a new instance of the class represented by this Class, created by invoking the default (that is, zero-argument) constructor.
      String toString()
      Returns a string containing a concise, human-readable description of this object.
    • Method Detail

      • forName

        public static Class<?> forName​(String className)
                                throws ClassNotFoundException
        Returns a Class object which represents the class with the given name. The name should be the name of a non-primitive class, as described in the class definition. Primitive types can not be found using this method; use int.class or Integer.TYPE instead.

        If the class has not yet been loaded, it is loaded and initialized first. This is done through either the class loader of the calling class or one of its parent class loaders. It is possible that a static initializer is run as a result of this call.

        Throws:
        ClassNotFoundException - if the requested class cannot be found.
        LinkageError - if an error occurs during linkage
        ExceptionInInitializerError - if an exception occurs during static initialization of a class.
      • forName

        public static Class<?> forName​(String className,
                                       boolean shouldInitialize,
                                       ClassLoader classLoader)
                                throws ClassNotFoundException
        Returns a Class object which represents the class with the given name. The name should be the name of a non-primitive class, as described in the class definition. Primitive types can not be found using this method; use int.class or Integer.TYPE instead.

        If the class has not yet been loaded, it is loaded first, using the given class loader. If the class has not yet been initialized and shouldInitialize is true, the class will be initialized.

        If the provided classLoader is null, the bootstrap class loader will be used to load the class.

        Throws:
        ClassNotFoundException - if the requested class cannot be found.
        LinkageError - if an error occurs during linkage
        ExceptionInInitializerError - if an exception occurs during static initialization of a class.
      • getClasses

        public Class<?>[] getClasses()
        Returns an array containing Class objects for all public classes, interfaces, enums and annotations that are members of this class and its superclasses. This does not include classes of implemented interfaces. If there are no such class members or if this object represents a primitive type then an array of length 0 is returned.
      • getAnnotation

        public <A extends Annotation> A getAnnotation​(Class<A> annotationType)
        Description copied from interface: AnnotatedElement
        Returns, for this element, the annotation with the specified type, or null if no annotation with the specified type is present (including inherited annotations).
        Specified by:
        getAnnotation in interface AnnotatedElement
        Parameters:
        annotationType - the type of the annotation to search for
        Returns:
        the annotation with the specified type or null
      • getAnnotations

        public Annotation[] getAnnotations()
        Returns an array containing all the annotations of this class. If there are no annotations then an empty array is returned.
        Specified by:
        getAnnotations in interface AnnotatedElement
        Returns:
        an array of all annotations for this element
        See Also:
        getDeclaredAnnotations()
      • getCanonicalName

        public String getCanonicalName()
        Returns the canonical name of this class. If this class does not have a canonical name as defined in the Java Language Specification, then the method returns null.
      • getClassLoader

        public ClassLoader getClassLoader()
        Returns the class loader which was used to load the class represented by this Class. Implementations are free to return null for classes that were loaded by the bootstrap class loader. The Android reference implementation, though, always returns a reference to an actual class loader.
      • getComponentType

        public Class<?> getComponentType()
        Returns a Class object which represents the component type if this class represents an array type. Returns null if this class does not represent an array type. The component type of an array type is the type of the elements of the array.
      • getDex

        public Dex getDex()
        Returns the dex file from which this class was loaded.
      • getDexCacheString

        public String getDexCacheString​(Dex dex,
                                        int dexStringIndex)
        Returns a string from the dex cache, computing the string from the dex file if necessary.
      • getDexCacheType

        public Class<?> getDexCacheType​(Dex dex,
                                        int dexTypeIndex)
        Returns a resolved type from the dex cache, computing the type from the dex file if necessary.
      • getDeclaredConstructor

        public Constructor<T> getDeclaredConstructor​(Class<?>... parameterTypes)
                                              throws NoSuchMethodException
        Returns a Constructor object which represents the constructor matching the specified parameter types that is declared by the class represented by this Class. (Class[]) null is equivalent to the empty array.
        Throws:
        NoSuchMethodException - if the requested constructor cannot be found.
        See Also:
        getConstructor(Class[])
      • getConstructors

        public Constructor<?>[] getConstructors()
        Returns an array containing Constructor objects for all public constructors for this Class. If there are no public constructors or if this Class represents an array class, a primitive type or void then an empty array is returned.
        See Also:
        getDeclaredConstructors()
      • getDeclaredConstructors

        public Constructor<?>[] getDeclaredConstructors()
        Returns an array containing Constructor objects for all constructors declared in the class represented by this Class. If there are no constructors or if this Class represents an array class, a primitive type or void then an empty array is returned.
        See Also:
        getConstructors()
      • getDeclaredMethod

        public Method getDeclaredMethod​(String name,
                                        Class<?>... parameterTypes)
                                 throws NoSuchMethodException
        Returns a Method object which represents the method matching the specified name and parameter types that is declared by the class represented by this Class.
        Parameters:
        name - the requested method's name.
        parameterTypes - the parameter types of the requested method. (Class[]) null is equivalent to the empty array.
        Returns:
        the method described by name and parameterTypes.
        Throws:
        NoSuchMethodException - if the requested method cannot be found.
        NullPointerException - if name is null.
        See Also:
        getMethod(String, Class[])
      • getMethod

        public Method getMethod​(String name,
                                Class<?>... parameterTypes)
                         throws NoSuchMethodException
        Returns a Method object which represents the public method with the specified name and parameter types. (Class[]) null is equivalent to the empty array. This method first searches the class C represented by this Class, then the superclasses of C and finally the interfaces implemented by C and finally the superclasses of C for a method with matching name.
        Throws:
        NoSuchMethodException - if the method cannot be found.
        See Also:
        getDeclaredMethod(String, Class[])
      • getDeclaredMethods

        public Method[] getDeclaredMethods()
        Returns an array containing Method objects for all methods declared in the class represented by this Class. If there are no methods or if this Class represents an array class, a primitive type or void then an empty array is returned.
        See Also:
        getMethods()
      • getDeclaredMethodsUnchecked

        public Method[] getDeclaredMethodsUnchecked​(boolean publicOnly)
        Populates a list of methods without performing any security or type resolution checks first. If no methods exist, the list is not modified.
        Parameters:
        publicOnly - Whether to return only public methods.
        methods - A list to populate with declared methods.
      • getMethods

        public Method[] getMethods()
        Returns an array containing Method objects for all public methods for the class C represented by this Class. Methods may be declared in C, the interfaces it implements or in the superclasses of C. The elements in the returned array are in no particular order.

        If there are no public methods or if this Class represents a primitive type or void then an empty array is returned.

        See Also:
        getDeclaredMethods()
      • getDeclaredAnnotations

        public Annotation[] getDeclaredAnnotations()
        Returns the annotations that are directly defined on the class represented by this Class. Annotations that are inherited are not included in the result. If there are no annotations at all, an empty array is returned.
        Specified by:
        getDeclaredAnnotations in interface AnnotatedElement
        Returns:
        an array of annotations declared for this element
        See Also:
        getAnnotations()
      • getDeclaredClasses

        public Class<?>[] getDeclaredClasses()
        Returns an array containing Class objects for all classes, interfaces, enums and annotations that are members of this class.
      • getDeclaredFields

        public Field[] getDeclaredFields()
        Returns an array containing Field objects for all fields declared in the class represented by this Class. If there are no fields or if this Class represents an array class, a primitive type or void then an empty array is returned.
        See Also:
        getFields()
      • getDeclaredFieldsUnchecked

        public Field[] getDeclaredFieldsUnchecked​(boolean publicOnly)
        Populates a list of fields without performing any security or type resolution checks first. If no fields exist, the list is not modified.
        Parameters:
        publicOnly - Whether to return only public fields.
        fields - A list to populate with declared fields.
      • getDeclaringClass

        public Class<?> getDeclaringClass()
        Returns the class that this class is a member of, or null if this class is a top-level class, a primitive, an array, or defined within a method or constructor.
      • getEnclosingClass

        public Class<?> getEnclosingClass()
        Returns the class enclosing this class. For most classes this is the same as the declaring class. For classes defined within a method or constructor (typically anonymous inner classes), this is the declaring class of that member.
      • getEnclosingConstructor

        public Constructor<?> getEnclosingConstructor()
        Returns the enclosing Constructor of this Class, if it is an anonymous or local/automatic class; otherwise null.
      • getEnclosingMethod

        public Method getEnclosingMethod()
        Returns the enclosing Method of this Class, if it is an anonymous or local/automatic class; otherwise null.
      • getEnumConstants

        public T[] getEnumConstants()
        Returns the enum constants associated with this Class. Returns null if this Class does not represent an enum type.
      • getField

        public Field getField​(String name)
                       throws NoSuchFieldException
        Returns a Field object which represents the public field with the given name. This method first searches the class C represented by this Class, then recursively calls getField on the interfaces directly implemented by C (in the order they are declared) and finally recursively calls getField on the superclass of C.
        Throws:
        NoSuchFieldException - if the field cannot be found.
        NullPointerException - if name is null.
        See Also:
        getDeclaredField(String)
      • getFields

        public Field[] getFields()
        Returns an array containing Field objects for all public fields for the class C represented by this Class. Fields may be declared in C, the interfaces it implements or in the superclasses of C. The elements in the returned array are in no particular order.

        If there are no public fields or if this class represents an array class, a primitive type or void then an empty array is returned.

        See Also:
        getDeclaredFields()
      • getGenericInterfaces

        public Type[] getGenericInterfaces()
        Returns the Types of the interfaces that this Class directly implements. If the Class represents a primitive type or void then an empty array is returned.
      • getGenericSuperclass

        public Type getGenericSuperclass()
        Returns the Type that represents the superclass of this class.
      • getInterfaces

        public Class<?>[] getInterfaces()
        Returns an array of Class objects that match the interfaces in the implements declaration of the class represented by this Class. The order of the elements in the array is identical to the order in the original class declaration. If the class does not implement any interfaces, an empty array is returned.

        This method only returns directly-implemented interfaces, and does not include interfaces implemented by superclasses or superinterfaces of any implemented interfaces.

      • getModifiers

        public int getModifiers()
        Returns an integer that represents the modifiers of the class represented by this Class. The returned value is a combination of bits defined by constants in the Modifier class.
      • getName

        public String getName()
        Returns the name of the class represented by this Class. For a description of the format which is used, see the class definition of Class.
      • getSimpleName

        public String getSimpleName()
        Returns the simple name of the class represented by this Class as defined in the source code. If there is no name (that is, the class is anonymous) then an empty string is returned. If the receiver is an array then the name of the underlying type with square braces appended (for example "Integer[]") is returned.
        Returns:
        the simple name of the class represented by this Class.
      • getProtectionDomain

        public ProtectionDomain getProtectionDomain()
        Returns null.
      • getResource

        public URL getResource​(String resourceName)
        Returns the URL of the given resource, or null if the resource is not found. The mapping between the resource name and the URL is managed by the class' class loader.
        See Also:
        ClassLoader
      • getResourceAsStream

        public InputStream getResourceAsStream​(String resourceName)
        Returns a read-only stream for the contents of the given resource, or null if the resource is not found. The mapping between the resource name and the stream is managed by the class' class loader.
        See Also:
        ClassLoader
      • getSigners

        public Object[] getSigners()
        Returns null. (On Android, a ClassLoader can load classes from multiple dex files. All classes from any given dex file will have the same signers, but different dex files may have different signers. This does not fit well with the original ClassLoader-based model of getSigners.)
      • getSuperclass

        public Class<? super T> getSuperclass()
        Returns the Class object which represents the superclass of the class represented by this Class. If this Class represents the Object class, a primitive type, an interface or void then the method returns null. If this Class represents an array class then the Object class is returned.
      • getTypeParameters

        public TypeVariable<Class<T>>[] getTypeParameters()
        Returns an array containing TypeVariable objects for type variables declared by the generic class represented by this Class. Returns an empty array if the class is not generic.
        Specified by:
        getTypeParameters in interface GenericDeclaration
        Returns:
        the declared type parameters in declaration order
      • isAnnotation

        public boolean isAnnotation()
        Tests whether this Class represents an annotation class.
      • isAnnotationPresent

        public boolean isAnnotationPresent​(Class<? extends Annotation> annotationType)
        Description copied from interface: AnnotatedElement
        Indicates whether or not this element has an annotation with the specified annotation type (including inherited annotations).
        Specified by:
        isAnnotationPresent in interface AnnotatedElement
        Parameters:
        annotationType - the type of the annotation to search for
        Returns:
        true if the annotation exists, false otherwise
      • isAnonymousClass

        public boolean isAnonymousClass()
        Tests whether the class represented by this Class is anonymous.
      • isArray

        public boolean isArray()
        Tests whether the class represented by this Class is an array class.
      • isProxy

        public boolean isProxy()
        Is this a runtime created proxy class?
      • isAssignableFrom

        public boolean isAssignableFrom​(Class<?> c)
        Can c be assigned to this class? For example, String can be assigned to Object (by an upcast), however, an Object cannot be assigned to a String as a potentially exception throwing downcast would be necessary. Similarly for interfaces, a class that implements (or an interface that extends) another can be assigned to its parent, but not vice-versa. All Classes may assign to themselves. Classes for primitive types may not assign to each other.
        Parameters:
        c - the class to check.
        Returns:
        true if c can be assigned to the class represented by this Class; false otherwise.
        Throws:
        NullPointerException - if c is null.
      • isEnum

        public boolean isEnum()
        Tests whether the class represented by this Class is an enum.
      • isInstance

        public boolean isInstance​(Object object)
        Tests whether the given object can be cast to the class represented by this Class. This is the runtime version of the instanceof operator.
        Returns:
        true if object can be cast to the type represented by this Class; false if object is null or cannot be cast.
      • isInterface

        public boolean isInterface()
        Tests whether this Class represents an interface.
      • isLocalClass

        public boolean isLocalClass()
        Tests whether the class represented by this Class is defined locally.
      • isMemberClass

        public boolean isMemberClass()
        Tests whether the class represented by this Class is a member class.
      • isPrimitive

        public boolean isPrimitive()
        Tests whether this Class represents a primitive type.
      • isSynthetic

        public boolean isSynthetic()
        Tests whether this Class represents a synthetic type.
      • isFinalizable

        public boolean isFinalizable()
        Indicates whether this Class or its parents override finalize.
      • newInstance

        public T newInstance()
                      throws InstantiationException,
                             IllegalAccessException
        Returns a new instance of the class represented by this Class, created by invoking the default (that is, zero-argument) constructor. If there is no such constructor, or if the creation fails (either because of a lack of available memory or because an exception is thrown by the constructor), an InstantiationException is thrown. If the default constructor exists but is not accessible from the context where this method is invoked, an IllegalAccessException is thrown.
        Throws:
        IllegalAccessException - if the default constructor is not visible.
        InstantiationException - if the instance cannot be created.
      • toString

        public String toString()
        Description copied from class: Object
        Returns a string containing a concise, human-readable description of this object. Subclasses are encouraged to override this method and provide an implementation that takes into account the object's type and data. The default implementation is equivalent to the following expression:
           getClass().getName() + '@' + Integer.toHexString(hashCode())

        See Writing a useful toString method if you intend implementing your own toString method.

        Overrides:
        toString in class Object
        Returns:
        a printable representation of this object.
      • getPackage

        public Package getPackage()
        Returns the Package of which the class represented by this Class is a member. Returns null if no Package object was created by the class loader of the class.
      • getPackageName$

        public String getPackageName$()
        Returns the package name of this class. This returns null for classes in the default package.
      • desiredAssertionStatus

        public boolean desiredAssertionStatus()
        Returns the assertion status for the class represented by this Class. Assertion is enabled / disabled based on the class loader, package or class default at runtime.
      • asSubclass

        public <U> Class<? extends U> asSubclass​(Class<U> c)
        Casts this Class to represent a subclass of the given class. If successful, this Class is returned; otherwise a ClassCastException is thrown.
        Throws:
        ClassCastException - if this Class cannot be cast to the given type.
      • cast

        public T cast​(Object obj)
        Casts the given object to the type represented by this Class. If the object is null then the result is also null.
        Throws:
        ClassCastException - if the object cannot be cast to the given type.
      • getDexClassDefIndex

        public int getDexClassDefIndex()
        The class def of this class in its own Dex, or -1 if there is no class def.
      • getDexTypeIndex

        public int getDexTypeIndex()
        The type index of this class in its own Dex, or -1 if it is unknown. If a class is referenced by multiple Dex files, it will have a different type index in each. Dex files support 65534 type indices, with 65535 representing no index.
      • getDexAnnotationDirectoryOffset

        public int getDexAnnotationDirectoryOffset()
        The annotation directory offset of this class in its own Dex, or 0 if it is unknown. TODO: 0 is a sentinel that means 'no annotations directory'; this should be -1 if unknown