Class ClassRefTypeSignature


  • public class ClassRefTypeSignature
    extends ClassRefOrTypeVariableSignature
    A class reference type signature (called "ClassTypeSignature" in the classfile documentation).
    • Field Detail

      • scanResult

        protected transient ScanResult scanResult
    • Method Detail

      • getBaseClassName

        public String getBaseClassName()
        Get the name of the base class.
        Returns:
        The name of the base class.
      • getFullyQualifiedClassName

        public String getFullyQualifiedClassName()
        Get the name of the class, formed from the base name and any suffixes (suffixes are for inner class nesting, and are separated by '$'), but without any type arguments. For example, "xyz.Cls<String>.InnerCls<Integer>" is returned as "xyz.Cls$InnerCls". The intent of this method is that if you replace '.' with '/', and then add the suffix ".class", you end up with the path of the classfile relative to the package root.

        For comparison, toString() uses '.' to separate suffixes, and includes type parameters, whereas this method uses '$' to separate suffixes, and does not include type parameters.

        Returns:
        The fully-qualified name of the class, including suffixes but without type arguments.
      • getTypeArguments

        public List<TypeArgument> getTypeArguments()
        Get any type arguments of the base class.
        Returns:
        The type arguments for the base class.
      • getSuffixes

        public List<String> getSuffixes()
        Get any suffixes of the class (typically nested inner class names).
        Returns:
        The class suffixes (for inner classes).
      • getSuffixTypeArguments

        public List<List<TypeArgument>> getSuffixTypeArguments()
        Get any type arguments for any suffixes of the class, one list per suffix.
        Returns:
        The type arguments for the inner classes, one list per suffix.
      • loadClass

        public Class<?> loadClass​(boolean ignoreExceptions)
        Load the referenced class, if not already loaded, returning a Class<?> reference for the referenced class. (Called by AnnotationClassRef.loadClass().)
        Parameters:
        ignoreExceptions - if true, ignore exceptions and instead return null if the class could not be loaded.
        Returns:
        The Class<?> reference for the referenced class.
        Throws:
        IllegalArgumentException - if the class could not be loaded and ignoreExceptions was false.
      • loadClass

        public Class<?> loadClass()
        Load the referenced class, if not already loaded, returning a Class<?> reference for the referenced class. (Called by AnnotationClassRef.loadClass().)
        Returns:
        The Class<?> reference for the referenced class.
        Throws:
        IllegalArgumentException - if the class could not be loaded.
      • getClassName

        protected String getClassName()
        Get the fully qualified class name (used by getClassInfo() and loadClass().
        Returns:
        The fully qualified name of the class.
      • getClassInfo

        public ClassInfo getClassInfo()
        Returns:
        The ClassInfo object for the referenced class, or null if the referenced class was not encountered during scanning (i.e. if no ClassInfo object was created for the class during scanning). N.B. even if this method returns null, loadClass() may be able to load the referenced class by name.
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object
      • toString

        public String toString()
        Return the class type as a string.

        For comparison, getFullyQualifiedClassName() uses '$' to separate suffixes, and does not include type parameters, whereas this method uses '.' to separate suffixes, and does include type parameters.

        Overrides:
        toString in class Object