Class Types


  • public class Types
    extends java.lang.Object
    • Constructor Summary

      Constructors 
      Constructor Description
      Types()  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.reflect.ParameterizedType findParameterizedType​(java.lang.Class<?> klass, java.lang.Class<?> parameterizedClass)
      This method helps reconstructing the resulting ParameterizedType for a specific generic type across its hierarchy.
      private java.lang.reflect.Type[] resolveArgumentTypes​(java.lang.Class<?> type, java.lang.Class<?> parameterizedClass)  
      private java.lang.reflect.Type[] resolveArgumentTypes​(java.lang.reflect.ParameterizedType type, java.lang.Class<?> parameterizedClass)  
      private java.lang.reflect.Type[] resolveArgumentTypes​(java.lang.reflect.Type type, java.lang.Class<?> parameterizedClass)  
      • Methods inherited from class java.lang.Object

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

      • Types

        public Types()
    • Method Detail

      • findParameterizedType

        public java.lang.reflect.ParameterizedType findParameterizedType​(java.lang.Class<?> klass,
                                                                         java.lang.Class<?> parameterizedClass)
        This method helps reconstructing the resulting ParameterizedType for a specific generic type across its hierarchy. Example: Let's create some interface Converter[X, Y] and try to determine the actual type arguments for that interface from classes/interfaces which inherit from it (directly or indirectly).
        • Converter[X, Y] will yield Converter[X, Y]
        • StringConverter[Z] extends Converter[Z, String] will yield Converter[Z, String]
        • AbstractStringConverter[A] implements StringConverter[A] will yield Converter[A, String]
        • UUIDStringConverter extends AbstractStringConverter[UUID] will yield Converter[UUID, String]
        For the last example (UUIDStringConverter), nowhere in its hierarchy is a type directly implementing Converter[UUID, String] but this method is capable of reconstructing that information.
      • resolveArgumentTypes

        private java.lang.reflect.Type[] resolveArgumentTypes​(java.lang.reflect.Type type,
                                                              java.lang.Class<?> parameterizedClass)
      • resolveArgumentTypes

        private java.lang.reflect.Type[] resolveArgumentTypes​(java.lang.Class<?> type,
                                                              java.lang.Class<?> parameterizedClass)
      • resolveArgumentTypes

        private java.lang.reflect.Type[] resolveArgumentTypes​(java.lang.reflect.ParameterizedType type,
                                                              java.lang.Class<?> parameterizedClass)