Class Types


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

      Constructors 
      Modifier Constructor Description
      private Types()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      private static void checkArgument​(boolean expression)  
      private static void checkArgument​(boolean expression, java.lang.Object errorMessage)  
      (package private) static void checkArgument​(boolean expression, java.lang.String errorMessageTemplate, java.lang.Object... errorMessageArgs)  
      private static <T> T checkNotNull​(T reference)  
      private static void disallowPrimitiveType​(java.lang.reflect.Type[] types, java.lang.String usedAs)  
      private static boolean equal​(java.lang.Object obj1, java.lang.Object obj2)  
      private static java.util.List<java.lang.reflect.Type> filterUpperBounds​(java.util.List<java.lang.reflect.Type> bounds)  
      private static java.lang.String format​(java.lang.String template, java.lang.Object... args)  
      (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 <T> T newProxy​(java.lang.Class<T> interfaceType, java.lang.reflect.InvocationHandler handler)  
      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
    • 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.
        • For array type Foo[], "com.mypackage.Foo[]" are returned.
        • For any class, theClass.getName() are returned.
        • For all other types, type.toString() are returned.
      • 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)
      • newProxy

        private static <T> T newProxy​(java.lang.Class<T> interfaceType,
                                      java.lang.reflect.InvocationHandler handler)
      • toArray

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

        private static java.util.List<java.lang.reflect.Type> filterUpperBounds​(java.util.List<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.
      • checkNotNull

        private static <T> T checkNotNull​(T reference)
      • checkArgument

        private static void checkArgument​(boolean expression)
      • checkArgument

        private static void checkArgument​(boolean expression,
                                          java.lang.Object errorMessage)
      • checkArgument

        static void checkArgument​(boolean expression,
                                  java.lang.String errorMessageTemplate,
                                  java.lang.Object... errorMessageArgs)
      • format

        private static java.lang.String format​(java.lang.String template,
                                               java.lang.Object... args)
      • equal

        private static boolean equal​(java.lang.Object obj1,
                                     java.lang.Object obj2)