Class TypeArguments


  • public final class TypeArguments
    extends Object
    Utility methods for dealing with generic type arguments.
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static com.google.inject.TypeLiteral<?>[] get​(com.google.inject.TypeLiteral<?> typeLiteral)
      Get all type arguments from a generic type, for example [Foo,Bar] from Map<Foo,Bar>.
      static com.google.inject.TypeLiteral<?> get​(com.google.inject.TypeLiteral<?> typeLiteral, int index)
      Get an indexed type argument from a generic type, for example Bar from Map<Foo,Bar>.
      static <T> com.google.inject.Key<T> implicitKey​(Class<T> clazz)
      Creates a special binding key for the given implicit type.
      static boolean isAssignableFrom​(com.google.inject.TypeLiteral<?> superLiteral, com.google.inject.TypeLiteral<?> subLiteral)
      Determines if the sub-type can be converted to the generic super-type via an identity or widening conversion.
      static boolean isConcrete​(com.google.inject.TypeLiteral<?> literal)
      Determines if the given generic type represents a concrete type.
      static boolean isConcrete​(Class<?> clazz)
      Determines if the given raw type represents a concrete type.
      static boolean isImplicit​(com.google.inject.TypeLiteral<?> literal)
      Determines if the given generic type represents an implicit binding.
      static boolean isImplicit​(Class<?> clazz)
      Determines if the given raw type represents an implicit binding.
    • Method Detail

      • get

        public static com.google.inject.TypeLiteral<?>[] get​(com.google.inject.TypeLiteral<?> typeLiteral)
        Get all type arguments from a generic type, for example [Foo,Bar] from Map<Foo,Bar>.
        Parameters:
        typeLiteral - The generic type
        Returns:
        Array of type arguments
      • get

        public static com.google.inject.TypeLiteral<?> get​(com.google.inject.TypeLiteral<?> typeLiteral,
                                                           int index)
        Get an indexed type argument from a generic type, for example Bar from Map<Foo,Bar>.
        Parameters:
        typeLiteral - The generic type
        index - The argument index
        Returns:
        Indexed type argument; TypeLiteral<Object> if the given type is a raw class
      • isAssignableFrom

        public static boolean isAssignableFrom​(com.google.inject.TypeLiteral<?> superLiteral,
                                               com.google.inject.TypeLiteral<?> subLiteral)
        Determines if the sub-type can be converted to the generic super-type via an identity or widening conversion.
        Parameters:
        superLiteral - The generic super-type
        subLiteral - The generic sub-type
        Returns:
        true if the sub-type can be converted to the generic super-type; otherwise false
        See Also:
        Class.isAssignableFrom(Class)
      • isConcrete

        public static boolean isConcrete​(com.google.inject.TypeLiteral<?> literal)
        Determines if the given generic type represents a concrete type.
        Parameters:
        literal - The generic type
        Returns:
        true if the generic type is concrete; otherwise false
      • isConcrete

        public static boolean isConcrete​(Class<?> clazz)
        Determines if the given raw type represents a concrete type.
        Parameters:
        clazz - The raw type
        Returns:
        true if the raw type is concrete; otherwise false
      • isImplicit

        public static boolean isImplicit​(com.google.inject.TypeLiteral<?> literal)
        Determines if the given generic type represents an implicit binding.
        Parameters:
        literal - The generic type
        Returns:
        true if the generic type is implicit; otherwise false
      • isImplicit

        public static boolean isImplicit​(Class<?> clazz)
        Determines if the given raw type represents an implicit binding.
        Parameters:
        clazz - The raw type
        Returns:
        true if the raw type is implicit; otherwise false
      • implicitKey

        public static <T> com.google.inject.Key<T> implicitKey​(Class<T> clazz)
        Creates a special binding key for the given implicit type.
        Parameters:
        clazz - The implicit type
        Returns:
        Implicit binding key