Class MoreTypes


  • public class MoreTypes
    extends java.lang.Object
    Static methods for working with types that we aren't publishing in the public Types API.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.lang.reflect.Type[] EMPTY_TYPE_ARRAY  
    • Method Summary

      Modifier and Type Method Description
      static java.lang.reflect.Type canonicalize​(java.lang.reflect.Type type)
      Returns a type that is functionally equal but not necessarily equal according to Object.equals().
      static boolean equals​(java.lang.reflect.Type a, java.lang.reflect.Type b)
      Returns true if a and b are equal.
      static java.lang.reflect.Type getGenericSupertype​(java.lang.reflect.Type type, java.lang.Class<?> rawType, java.lang.Class<?> toResolve)
      Returns the generic supertype for supertype.
      static java.lang.Class<?> getRawType​(java.lang.reflect.Type type)  
      static int hashCode​(java.lang.reflect.Type type)
      Returns the hashCode of type.
      static <T> TypeLiteral<T> makeKeySafe​(TypeLiteral<T> type)
      Returns an equivalent type that's safe for use in a key.
      static java.lang.String memberKey​(java.lang.reflect.Member member)  
      static java.lang.Class<? extends java.lang.reflect.Member> memberType​(java.lang.reflect.Member member)
      Returns Field.class, Method.class or Constructor.class.
      static java.lang.reflect.Type resolveTypeVariable​(java.lang.reflect.Type type, java.lang.Class<?> rawType, java.lang.reflect.TypeVariable unknown)  
      static java.lang.String toString​(java.lang.reflect.Member member)
      Formats a member as concise string, such as java.util.ArrayList.size, java.util.ArrayList<init>() or java.util.List.remove().
      static java.lang.String toString​(java.lang.reflect.Type type)  
      • Methods inherited from class java.lang.Object

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

      • EMPTY_TYPE_ARRAY

        public static final java.lang.reflect.Type[] EMPTY_TYPE_ARRAY
    • Method Detail

      • makeKeySafe

        public static <T> TypeLiteral<T> makeKeySafe​(TypeLiteral<T> type)
        Returns an equivalent type that's safe for use in a key. The returned type will be free of primitive types. Type literals of primitives will return the corresponding wrapper types.
        Throws:
        ConfigurationException - if type contains a type variable
      • canonicalize

        public static java.lang.reflect.Type canonicalize​(java.lang.reflect.Type type)
        Returns a type that is functionally equal but not necessarily equal according to Object.equals().
      • getRawType

        public static java.lang.Class<?> getRawType​(java.lang.reflect.Type type)
      • equals

        public static boolean equals​(java.lang.reflect.Type a,
                                     java.lang.reflect.Type b)
        Returns true if a and b are equal.
      • hashCode

        public static int hashCode​(java.lang.reflect.Type type)
        Returns the hashCode of type.
      • toString

        public static java.lang.String toString​(java.lang.reflect.Type type)
      • memberType

        public static java.lang.Class<? extends java.lang.reflect.Member> memberType​(java.lang.reflect.Member member)
        Returns Field.class, Method.class or Constructor.class.
      • toString

        public static java.lang.String toString​(java.lang.reflect.Member member)
        Formats a member as concise string, such as java.util.ArrayList.size, java.util.ArrayList<init>() or java.util.List.remove().
      • memberKey

        public static java.lang.String memberKey​(java.lang.reflect.Member member)
      • getGenericSupertype

        public static java.lang.reflect.Type getGenericSupertype​(java.lang.reflect.Type type,
                                                                 java.lang.Class<?> rawType,
                                                                 java.lang.Class<?> toResolve)
        Returns the generic supertype for supertype. For example, given a class IntegerSet, the result for when supertype is Set.class is Set<Integer> and the result when the supertype is Collection.class is Collection<Integer>.
      • resolveTypeVariable

        public static java.lang.reflect.Type resolveTypeVariable​(java.lang.reflect.Type type,
                                                                 java.lang.Class<?> rawType,
                                                                 java.lang.reflect.TypeVariable unknown)