Class ClassName

  • All Implemented Interfaces:
    java.lang.Comparable<ClassName>

    public final class ClassName
    extends TypeName
    implements java.lang.Comparable<ClassName>
    A fully-qualified class name for top-level and member classes.
    • Field Detail

      • OBJECT

        public static final ClassName OBJECT
      • NO_PACKAGE

        private static final java.lang.String NO_PACKAGE
        The name representing the default Java package.
        See Also:
        Constant Field Values
      • packageName

        final java.lang.String packageName
        The package name of this class, or "" if this is in the default package.
      • enclosingClassName

        final ClassName enclosingClassName
        The enclosing class, or null if this is not enclosed in another class.
      • simpleName

        final java.lang.String simpleName
        This class name, like "Entry" for java.util.Map.Entry.
      • simpleNames

        private java.util.List<java.lang.String> simpleNames
      • canonicalName

        final java.lang.String canonicalName
        The full class name like "java.util.Map.Entry".
    • Constructor Detail

      • ClassName

        private ClassName​(java.lang.String packageName,
                          ClassName enclosingClassName,
                          java.lang.String simpleName)
      • ClassName

        private ClassName​(java.lang.String packageName,
                          ClassName enclosingClassName,
                          java.lang.String simpleName,
                          java.util.List<AnnotationSpec> annotations)
    • Method Detail

      • packageName

        public java.lang.String packageName()
        Returns the package name, like "java.util" for Map.Entry. Returns the empty string for the default package.
      • enclosingClassName

        public ClassName enclosingClassName()
        Returns the enclosing class, like Map for Map.Entry. Returns null if this class is not nested in another class.
      • topLevelClassName

        public ClassName topLevelClassName()
        Returns the top class in this nesting group. Equivalent to chained calls to enclosingClassName() until the result's enclosing class is null.
      • reflectionName

        public java.lang.String reflectionName()
        Return the binary name of a class.
      • simpleNames

        public java.util.List<java.lang.String> simpleNames()
      • peerClass

        public ClassName peerClass​(java.lang.String name)
        Returns a class that shares the same enclosing package or class. If this class is enclosed by another class, this is equivalent to enclosingClassName().nestedClass(name). Otherwise it is equivalent to get(packageName(), name).
      • nestedClass

        public ClassName nestedClass​(java.lang.String name)
        Returns a new ClassName instance for the specified name as nested inside this class.
      • simpleName

        public java.lang.String simpleName()
        Returns the simple name of this class, like "Entry" for Map.Entry.
      • canonicalName

        public java.lang.String canonicalName()
        Returns the full class name of this class. Like "java.util.Map.Entry" for Map.Entry.
      • get

        public static ClassName get​(java.lang.Class<?> clazz)
      • bestGuess

        public static ClassName bestGuess​(java.lang.String classNameString)
        Returns a new ClassName instance for the given fully-qualified class name string. This method assumes that the input is ASCII and follows typical Java style (lowercase package names, UpperCamelCase class names) and may produce incorrect results or throw IllegalArgumentException otherwise. For that reason, get(Class) and get(Class) should be preferred as they can correctly create ClassName instances without such restrictions.
      • get

        public static ClassName get​(java.lang.String packageName,
                                    java.lang.String simpleName,
                                    java.lang.String... simpleNames)
        Returns a class name created from the given parts. For example, calling this with package name "java.util" and simple names "Map", "Entry" yields Map.Entry.
      • get

        public static ClassName get​(javax.lang.model.element.TypeElement element)
        Returns the class name for element.
      • compareTo

        public int compareTo​(ClassName o)
        Specified by:
        compareTo in interface java.lang.Comparable<ClassName>
      • enclosingClasses

        private java.util.List<ClassName> enclosingClasses()
        Returns all enclosing classes in this, outermost first.