Class ReflectionClassDef

  • All Implemented Interfaces:
    java.lang.CharSequence, java.lang.Comparable<java.lang.CharSequence>, Annotatable, ClassDef, Reference, TypeReference

    public class ReflectionClassDef
    extends BaseTypeReference
    implements ClassDef
    Wraps a ClassDef around a class loaded in the current VM Only supports the basic information exposed by ClassProto
    • Constructor Detail

      • ReflectionClassDef

        public ReflectionClassDef​(java.lang.Class cls)
    • Method Detail

      • getAccessFlags

        public int getAccessFlags()
        Description copied from interface: ClassDef
        Gets the access flags for this class. This will be a combination of the AccessFlags.* flags that are marked as compatible for use with a class.
        Specified by:
        getAccessFlags in interface ClassDef
        Returns:
        The access flags for this class
      • getSuperclass

        @Nullable
        public java.lang.String getSuperclass()
        Description copied from interface: ClassDef
        Gets the superclass of this class. This will only be null if this is the base java.lang.Object class.
        Specified by:
        getSuperclass in interface ClassDef
        Returns:
        The superclass of this class
      • getInterfaces

        @Nonnull
        public java.util.List<java.lang.String> getInterfaces()
        Description copied from interface: ClassDef
        Gets a list of the interfaces that this class implements.
        Specified by:
        getInterfaces in interface ClassDef
        Returns:
        A list of the interfaces that this class implements
      • getSourceFile

        @Nullable
        public java.lang.String getSourceFile()
        Description copied from interface: ClassDef
        Gets the name of the primary source file that this class is defined in, if available. This will be the default source file associated with all methods defined in this class. This can be overridden for sections of an individual method with the SetSourceFile debug item.
        Specified by:
        getSourceFile in interface ClassDef
        Returns:
        The name of the primary source file for this class, or null if not available
      • getAnnotations

        @Nonnull
        public java.util.Set<? extends Annotation> getAnnotations()
        Description copied from interface: ClassDef
        Gets a set of the annotations that are applied to this class. The annotations in the returned set are guaranteed to have unique types.
        Specified by:
        getAnnotations in interface Annotatable
        Specified by:
        getAnnotations in interface ClassDef
        Returns:
        A set of the annotations that are applied to this class
      • getStaticFields

        @Nonnull
        public java.lang.Iterable<? extends Field> getStaticFields()
        Description copied from interface: ClassDef
        Gets the static fields that are defined by this class. The static fields that are returned must have no duplicates.
        Specified by:
        getStaticFields in interface ClassDef
        Returns:
        The static fields that are defined by this class
      • getInstanceFields

        @Nonnull
        public java.lang.Iterable<? extends Field> getInstanceFields()
        Description copied from interface: ClassDef
        Gets the instance fields that are defined by this class. The instance fields that are returned must have no duplicates.
        Specified by:
        getInstanceFields in interface ClassDef
        Returns:
        The instance fields that are defined by this class
      • getFields

        @Nonnull
        public java.util.Set<? extends Field> getFields()
        Description copied from interface: ClassDef
        Gets all the fields that are defined by this class. This is a convenience method that combines getStaticFields() and getInstanceFields() The returned fields may be in any order. I.e. It's not safe to assume that all instance fields will come after all static fields. Note that there typically should not be any duplicate fields between the two, but some versions of dalvik inadvertently allow duplicate static/instance fields, and are supported here for completeness
        Specified by:
        getFields in interface ClassDef
        Returns:
        A set of the fields that are defined by this class
      • getDirectMethods

        @Nonnull
        public java.lang.Iterable<? extends Method> getDirectMethods()
        Description copied from interface: ClassDef
        Gets the direct methods that are defined by this class. The direct methods that are returned must have no duplicates.
        Specified by:
        getDirectMethods in interface ClassDef
        Returns:
        The direct methods that are defined by this class.
      • getVirtualMethods

        @Nonnull
        public java.lang.Iterable<? extends Method> getVirtualMethods()
        Description copied from interface: ClassDef
        Gets the virtual methods that are defined by this class. The virtual methods that are returned must have no duplicates.
        Specified by:
        getVirtualMethods in interface ClassDef
        Returns:
        The virtual methods that are defined by this class.
      • getMethods

        @Nonnull
        public java.util.Set<? extends Method> getMethods()
        Description copied from interface: ClassDef
        Gets all the methods that are defined by this class. This is a convenience method that combines getDirectMethods() and getVirtualMethods(). The returned methods may be in any order. I.e. It's not safe to assume that all virtual methods will come after all direct methods. Note that there typically should not be any duplicate methods between the two, but some versions of dalvik inadvertently allow duplicate direct/virtual methods, and are supported here for completeness
        Specified by:
        getMethods in interface ClassDef
        Returns:
        An iterable of the methods that are defined by this class.
      • getType

        @Nonnull
        public java.lang.String getType()
        Description copied from interface: ClassDef
        Gets the class type. This will be a type descriptor per the dex file specification.
        Specified by:
        getType in interface ClassDef
        Specified by:
        getType in interface TypeReference
        Returns:
        The class type