Package io.micronaut.core.reflect
Class ClassUtils
java.lang.Object
io.micronaut.core.reflect.ClassUtils
Utility methods for loading classes.
- Since:
- 1.0
- Author:
- Graeme Rocher
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic final class
Optimizations for computing missing types. -
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionarrayTypeForPrimitive
(String primitiveType) Returns the array type for the given primitive type name.forName
(String name, @Nullable ClassLoader classLoader) Attempt to load a class for the given name from the given class loader.static @NonNull org.slf4j.Logger
Special casegetLogger
method that should be used by classes that are used in the annotation processor.getPrimitiveType
(String primitiveType) The primitive type for the given type name.static boolean
isJavaBasicType
(@Nullable Class<?> type) Expanded version ofisJavaLangType(Class)
that includes common Java types likeURI
.static boolean
isJavaBasicType
(@Nullable String name) Expanded version ofisJavaLangType(Class)
that includes common Java types likeURI
.static boolean
isJavaLangType
(Class<?> type) Return whether the given class is a common type found injava.lang
such as String or a primitive type.static boolean
isJavaLangType
(String typeName) Return whether the given class is a common type found injava.lang
such as String or a primitive type.static boolean
isPresent
(String name, @Nullable ClassLoader classLoader) Check whether the given class is present in the given classloader.static String
pathToClassName
(String path) Converts a URI to a class file reference to the class nameresolveHierarchy
(Class<?> type) Builds a class hierarchy that includes all super classes and interfaces that the given class implements or extends from.
-
Field Details
-
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
-
BASIC_TYPE_MAP
-
CLASS_EXTENSION
Default extension for class files.- See Also:
-
REFLECTION_LOGGER
public static final org.slf4j.Logger REFLECTION_LOGGERA logger that should be used for any reflection access.
-
-
Constructor Details
-
ClassUtils
public ClassUtils()
-
-
Method Details
-
getLogger
Special casegetLogger
method that should be used by classes that are used in the annotation processor.- Parameters:
type
- The type- Returns:
- The logger
-
arrayTypeForPrimitive
Returns the array type for the given primitive type name.- Parameters:
primitiveType
- The primitive type name- Returns:
- The array type
-
pathToClassName
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
Check whether the given class is present in the given classloader.- Parameters:
name
- The name of the classclassLoader
- The classloader. If null will fall back to attempt the thread context loader, otherwise the system loader- Returns:
- True if it is
-
isJavaLangType
Return whether the given class is a common type found injava.lang
such as String or a primitive type.- Parameters:
type
- The type- Returns:
- True if it is
-
isJavaLangType
Return whether the given class is a common type found injava.lang
such as String or a primitive type.- Parameters:
typeName
- The type name- Returns:
- True if it is
-
isJavaBasicType
Expanded version ofisJavaLangType(Class)
that includes common Java types likeURI
.- Parameters:
type
- The URI- Returns:
- True if is a Java basic type
-
isJavaBasicType
Expanded version ofisJavaLangType(Class)
that includes common Java types likeURI
.- Parameters:
name
- The name of the type- Returns:
- True if is a Java basic type
-
getPrimitiveType
The primitive type for the given type name. For example the value "byte" returnsByte.TYPE
.- Parameters:
primitiveType
- The type name- Returns:
- An optional type
-
forName
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 classclassLoader
- The classloader. If null will fall back to attempt the thread context loader, otherwise the system loader- Returns:
- An optional of the class
-
resolveHierarchy
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
-