Class Types


  • final class Types
    extends java.lang.Object
    Utilities for working with Type.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private static Joiner COMMA_JOINER  
      private static Function<java.lang.reflect.Type,​java.lang.String> TYPE_NAME
      Class#toString without the "class " and "interface " prefixes
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      private Types()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      private static void disallowPrimitiveType​(java.lang.reflect.Type[] types, java.lang.String usedAs)  
      private static java.lang.Iterable<java.lang.reflect.Type> filterUpperBounds​(java.lang.Iterable<java.lang.reflect.Type> bounds)  
      (package private) static java.lang.Class<?> getArrayClass​(java.lang.Class<?> componentType)
      Returns the Class object of arrays with componentType.
      (package private) static java.lang.reflect.Type getComponentType​(java.lang.reflect.Type type)  
      (package private) static java.lang.reflect.Type newArrayType​(java.lang.reflect.Type componentType)
      Returns the array type of componentType.
      (package private) static <D extends java.lang.reflect.GenericDeclaration>
      java.lang.reflect.TypeVariable<D>
      newArtificialTypeVariable​(D declaration, java.lang.String name, java.lang.reflect.Type... bounds)
      Returns a new TypeVariable that belongs to declaration with name and bounds.
      (package private) static java.lang.reflect.ParameterizedType newParameterizedType​(java.lang.Class<?> rawType, java.lang.reflect.Type... arguments)
      Returns a type where rawType is parameterized by arguments.
      (package private) static java.lang.reflect.ParameterizedType newParameterizedTypeWithOwner​(java.lang.reflect.Type ownerType, java.lang.Class<?> rawType, java.lang.reflect.Type... arguments)
      Returns a type where rawType is parameterized by arguments and is owned by ownerType.
      private static <D extends java.lang.reflect.GenericDeclaration>
      java.lang.reflect.TypeVariable<D>
      newTypeVariableImpl​(D genericDeclaration, java.lang.String name, java.lang.reflect.Type[] bounds)  
      (package private) static java.lang.reflect.WildcardType subtypeOf​(java.lang.reflect.Type upperBound)
      Returns a new WildcardType with upperBound.
      private static java.lang.reflect.Type subtypeOfComponentType​(java.lang.reflect.Type[] bounds)
      Returns ? extends X if any of bounds is a subtype of X[]; or null otherwise.
      (package private) static java.lang.reflect.WildcardType supertypeOf​(java.lang.reflect.Type lowerBound)
      Returns a new WildcardType with lowerBound.
      private static java.lang.reflect.Type[] toArray​(java.util.Collection<java.lang.reflect.Type> types)  
      (package private) static java.lang.String toString​(java.lang.reflect.Type type)
      Returns human readable string representation of type.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • TYPE_NAME

        private static final Function<java.lang.reflect.Type,​java.lang.String> TYPE_NAME
        Class#toString without the "class " and "interface " prefixes
      • COMMA_JOINER

        private static final Joiner COMMA_JOINER
    • Constructor Detail

      • Types

        private Types()
    • Method Detail

      • newArrayType

        static java.lang.reflect.Type newArrayType​(java.lang.reflect.Type componentType)
        Returns the array type of componentType.
      • newParameterizedTypeWithOwner

        static java.lang.reflect.ParameterizedType newParameterizedTypeWithOwner​(java.lang.reflect.Type ownerType,
                                                                                 java.lang.Class<?> rawType,
                                                                                 java.lang.reflect.Type... arguments)
        Returns a type where rawType is parameterized by arguments and is owned by ownerType.
      • newParameterizedType

        static java.lang.reflect.ParameterizedType newParameterizedType​(java.lang.Class<?> rawType,
                                                                        java.lang.reflect.Type... arguments)
        Returns a type where rawType is parameterized by arguments.
      • newArtificialTypeVariable

        static <D extends java.lang.reflect.GenericDeclaration> java.lang.reflect.TypeVariable<D> newArtificialTypeVariable​(D declaration,
                                                                                                                            java.lang.String name,
                                                                                                                            java.lang.reflect.Type... bounds)
        Returns a new TypeVariable that belongs to declaration with name and bounds.
      • subtypeOf

        static java.lang.reflect.WildcardType subtypeOf​(java.lang.reflect.Type upperBound)
        Returns a new WildcardType with upperBound.
      • supertypeOf

        static java.lang.reflect.WildcardType supertypeOf​(java.lang.reflect.Type lowerBound)
        Returns a new WildcardType with lowerBound.
      • toString

        static java.lang.String toString​(java.lang.reflect.Type type)
        Returns human readable string representation of type.

        The format is subject to change.

      • getComponentType

        static java.lang.reflect.Type getComponentType​(java.lang.reflect.Type type)
      • subtypeOfComponentType

        private static java.lang.reflect.Type subtypeOfComponentType​(java.lang.reflect.Type[] bounds)
        Returns ? extends X if any of bounds is a subtype of X[]; or null otherwise.
      • newTypeVariableImpl

        private static <D extends java.lang.reflect.GenericDeclaration> java.lang.reflect.TypeVariable<D> newTypeVariableImpl​(D genericDeclaration,
                                                                                                                              java.lang.String name,
                                                                                                                              java.lang.reflect.Type[] bounds)
      • toArray

        private static java.lang.reflect.Type[] toArray​(java.util.Collection<java.lang.reflect.Type> types)
      • filterUpperBounds

        private static java.lang.Iterable<java.lang.reflect.Type> filterUpperBounds​(java.lang.Iterable<java.lang.reflect.Type> bounds)
      • disallowPrimitiveType

        private static void disallowPrimitiveType​(java.lang.reflect.Type[] types,
                                                  java.lang.String usedAs)
      • getArrayClass

        static java.lang.Class<?> getArrayClass​(java.lang.Class<?> componentType)
        Returns the Class object of arrays with componentType.