Class JandexReflection


  • public class JandexReflection
    extends java.lang.Object
    Utilities that allow moving from the Jandex world to the runtime world using reflection. To maintain stratification, these methods are intentionally not present on the respective Jandex classes.
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      private static java.lang.Class<?> load​(DotName name)  
      static java.lang.Class<?> loadClass​(ClassInfo clazz)
      Loads a class corresponding to given ClassInfo from the thread context classloader.
      static java.lang.Class<?> loadRawType​(Type type)
      Loads a class corresponding to the raw type of given Type from the thread context classloader.
      • Methods inherited from class java.lang.Object

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

      • JandexReflection

        public JandexReflection()
    • Method Detail

      • loadRawType

        public static java.lang.Class<?> loadRawType​(Type type)
        Loads a class corresponding to the raw type of given Type from the thread context classloader. If there is no TCCL, the classloader that loaded JandexReflection is used. Returns null when type is null.

        Specifically:

        • for the void pseudo-type, returns void.class;
        • for primitive types, returns the corresponding class object (e.g. int.class);
        • for class types, returns the corresponding class object (e.g. String.class);
        • for array types, returns the corresponding class object (e.g. String[][].class);
        • for parameterized types, returns the class object of the generic class (e.g. List.class for List<String>);
        • for wildcard types, returns the class object of the upper bound type (e.g. Number.class for ? extends Number), or Object.class if the wildcard type has no upper bound (e.g. ? super Integer);
        • for type variables, returns the class object of the first bound (e.g. Number.class for T extends Number & Comparable<T>), or Object.class if the type variable has no bounds (e.g. just T);
        • for type variables references, follows the reference to obtain the type variable and then returns the class object of the first bound (e.g. Number.class for T extends Number & Comparable<T>), or Object.class if the type variable has no bounds (e.g. just T);
        • for unresolved type variables, returns Object.class.
        Parameters:
        type - a Jandex Type
        Returns:
        the corresponding Class
      • loadClass

        public static java.lang.Class<?> loadClass​(ClassInfo clazz)
        Loads a class corresponding to given ClassInfo from the thread context classloader. If there is no TCCL, the classloader that loaded JandexReflection is used. Returns null when clazz is null.
        Parameters:
        clazz - a Jandex ClassInfo
        Returns:
        the corresponding Class
      • load

        private static java.lang.Class<?> load​(DotName name)