Class ArrayType

    • Field Detail

      • _componentType

        protected final JavaType _componentType
        Type of elements in the array.
      • _emptyArray

        protected final Object _emptyArray
        We will also keep track of shareable instance of empty array, since it usually needs to be constructed any way; and because it is essentially immutable and thus can be shared.
    • Method Detail

      • construct

        @Deprecated
        public static ArrayType construct​(JavaType componentType)
        Deprecated.
        Since 1.9, if you must directly instantiate, call method that takes handlers
      • withTypeHandler

        public ArrayType withTypeHandler​(Object h)
        Description copied from class: JavaType
        "Copy method" that will construct a new instance that is identical to this instance, except that it will have specified type handler assigned.
        Specified by:
        withTypeHandler in class JavaType
        Returns:
        Newly created type instance
      • withContentTypeHandler

        public ArrayType withContentTypeHandler​(Object h)
        Description copied from class: JavaType
        "Copy method" that will construct a new instance that is identical to this instance, except that its content type will have specified type handler assigned.
        Specified by:
        withContentTypeHandler in class JavaType
        Returns:
        Newly created type instance
      • _narrow

        protected JavaType _narrow​(Class<?> subclass)
        Handling of narrowing conversions for arrays is trickier: for now, it is not even allowed.
        Specified by:
        _narrow in class JavaType
      • narrowContentsBy

        public JavaType narrowContentsBy​(Class<?> contentClass)
        For array types, both main type and content type can be modified; but ultimately they are interchangeable.
        Specified by:
        narrowContentsBy in class JavaType
      • isAbstract

        public boolean isAbstract()
        For some odd reason, modifiers for array classes would claim they are abstract types. Not so, at least for our purposes.
        Overrides:
        isAbstract in class JavaType
      • isConcrete

        public boolean isConcrete()
        For some odd reason, modifiers for array classes would claim they are abstract types. Not so, at least for our purposes.
        Overrides:
        isConcrete in class JavaType
      • hasGenericTypes

        public boolean hasGenericTypes()
        Description copied from class: JavaType
        Method that can be used to find out if the type directly declares generic parameters (for its direct super-class and/or super-interfaces).
        Overrides:
        hasGenericTypes in class JavaType
      • containedTypeName

        public String containedTypeName​(int index)
        Not sure what symbolic name is used internally, if any; let's follow naming of Collection types here. Should not really matter since array types have no super types.
        Overrides:
        containedTypeName in class JavaType
        Parameters:
        index - Index of contained type to return
        Returns:
        Contained type at index, or null if no such type exists (no exception thrown)
      • isContainerType

        public boolean isContainerType()
        Specified by:
        isContainerType in class JavaType
        Returns:
        True if type represented is a container type; this includes array, Map and Collection types.
      • getContentType

        public JavaType getContentType()
        Description copied from class: JavaType
        Method for accessing content type of this type, if type has such a thing: simple types do not, structured types do (like arrays, Collections and Maps)
        Overrides:
        getContentType in class JavaType
      • containedTypeCount

        public int containedTypeCount()
        Description copied from class: JavaType
        Method for checking how many contained types this type has. Contained types are usually generic types, so that generic Maps have 2 contained types.
        Overrides:
        containedTypeCount in class JavaType
      • containedType

        public JavaType containedType​(int index)
        Description copied from class: JavaType
        Method for accessing definitions of contained ("child") types.
        Overrides:
        containedType in class JavaType
        Parameters:
        index - Index of contained type to return
        Returns:
        Contained type at index, or null if no such type exists (no exception thrown)
      • getGenericSignature

        public StringBuilder getGenericSignature​(StringBuilder sb)
        Specified by:
        getGenericSignature in class TypeBase
        Parameters:
        sb - StringBuilder to append signature to
        Returns:
        StringBuilder that was passed in; returned to allow call chaining
      • getErasedSignature

        public StringBuilder getErasedSignature​(StringBuilder sb)
        Description copied from class: JavaType
        Method for accessing signature without generic type information, in form compatible with all versions of JVM, and specifically used for type descriptions when generating byte code.
        Specified by:
        getErasedSignature in class TypeBase
        Parameters:
        sb - StringBuilder to append signature to
        Returns:
        StringBuilder that was passed in; returned to allow call chaining