Class ClassUtils

java.lang.Object
io.micronaut.core.reflect.ClassUtils

public class ClassUtils extends Object
Utility methods for loading classes.
Since:
1.0
Author:
Graeme Rocher
  • Field Details

    • PROPERTY_MICRONAUT_CLASSLOADER_LOGGING

      public static final String PROPERTY_MICRONAUT_CLASSLOADER_LOGGING
      System property to indicate whether classloader logging should be activated. This is required because this class is used both at compilation time and runtime, and we don't want logging at compilation time.
      See Also:
    • COMMON_CLASS_MAP

      public static final Map<String,Class<?>> COMMON_CLASS_MAP
    • BASIC_TYPE_MAP

      public static final Map<String,Class<?>> BASIC_TYPE_MAP
    • CLASS_EXTENSION

      public static final String CLASS_EXTENSION
      Default extension for class files.
      See Also:
    • REFLECTION_LOGGER

      public static final org.slf4j.Logger REFLECTION_LOGGER
      A logger that should be used for any reflection access.
  • Constructor Details

    • ClassUtils

      public ClassUtils()
  • Method Details

    • getLogger

      @NonNull public static @NonNull org.slf4j.Logger getLogger(@NonNull @NonNull Class<?> type)
      Special case getLogger method that should be used by classes that are used in the annotation processor.
      Parameters:
      type - The type
      Returns:
      The logger
    • arrayTypeForPrimitive

      @NonNull public static @NonNull Optional<Class<?>> arrayTypeForPrimitive(String primitiveType)
      Returns the array type for the given primitive type name.
      Parameters:
      primitiveType - The primitive type name
      Returns:
      The array type
    • pathToClassName

      public static String pathToClassName(String path)

      Converts a URI to a class file reference to the class name

      .

      ie. ClassUtils.pathToClassName("foo/bar/MyClass.class") == "foo.bar.MyClass"

      Parameters:
      path - The path name
      Returns:
      The class name
    • isPresent

      public static boolean isPresent(String name, @Nullable @Nullable ClassLoader classLoader)
      Check whether the given class is present in the given classloader.
      Parameters:
      name - The name of the class
      classLoader - The classloader. If null will fall back to attempt the thread context loader, otherwise the system loader
      Returns:
      True if it is
    • isJavaLangType

      public static boolean isJavaLangType(Class<?> type)
      Return whether the given class is a common type found in java.lang such as String or a primitive type.
      Parameters:
      type - The type
      Returns:
      True if it is
    • isJavaLangType

      public static boolean isJavaLangType(String typeName)
      Return whether the given class is a common type found in java.lang such as String or a primitive type.
      Parameters:
      typeName - The type name
      Returns:
      True if it is
    • isJavaBasicType

      public static boolean isJavaBasicType(@Nullable @Nullable Class<?> type)
      Expanded version of isJavaLangType(Class) that includes common Java types like URI.
      Parameters:
      type - The URI
      Returns:
      True if is a Java basic type
    • isJavaBasicType

      public static boolean isJavaBasicType(@Nullable @Nullable String name)
      Expanded version of isJavaLangType(Class) that includes common Java types like URI.
      Parameters:
      name - The name of the type
      Returns:
      True if is a Java basic type
    • getPrimitiveType

      public static Optional<Class<?>> getPrimitiveType(String primitiveType)
      The primitive type for the given type name. For example the value "byte" returns Byte.TYPE.
      Parameters:
      primitiveType - The type name
      Returns:
      An optional type
    • forName

      public static Optional<Class<?>> forName(String name, @Nullable @Nullable ClassLoader classLoader)
      Attempt to load a class for the given name from the given class loader. This method should be used as a last resort, and note that any usage of this method will create complications on GraalVM.
      Parameters:
      name - The name of the class
      classLoader - The classloader. If null will fall back to attempt the thread context loader, otherwise the system loader
      Returns:
      An optional of the class
    • resolveHierarchy

      public static List<Class<?>> resolveHierarchy(Class<?> type)
      Builds a class hierarchy that includes all super classes and interfaces that the given class implements or extends from.
      Parameters:
      type - The class to start with
      Returns:
      The class hierarchy