类 ClassUtils
- 从以下版本开始:
- 2018-06-0? ?
- 作者:
- Juergen Hoeller, Keith Donald, Rob Harrop, Sam Brannen, TODAY
- 另请参阅:
-
字段概要
字段修饰符和类型字段说明static final StringSuffix for array class names:"[]".static final StringThe CGLIB class separator:"$$".static final Stringstatic final charstatic final StringPrefix for internal array class names:"[".static final StringPrefix for internal non-primitive array class names:"[L". -
构造器概要
构造器 -
方法概要
修饰符和类型方法说明static Object[]adaptArgumentsIfNecessary(Method method, Object[] arguments) Adapt the given arguments to the target signature in the given method, if necessary: in particular, if a given vararg argument array does not match the array type of the declared vararg parameter in the method.static StringaddResourcePathToPackagePath(Class<?> clazz, String resourceName) Return a path suitable for use withClassLoader.getResource(also suitable for use withClass.getResourceby prepending a slash ('/') to the return value).static StringclassNamesToString(Class<?>... classes) Build a String that consists of the names of the classes/interfaces in the given array.static StringclassNamesToString(Collection<Class<?>> classes) Build a String that consists of the names of the classes/interfaces in the given collection.static StringclassPackageAsResourcePath(Class<?> clazz) Given an input class object, return a string which consists of the class's package name as a pathname, i.e., all dots ('.') are replaced by slashes ('/').static StringconvertClassNameToResourcePath(String className) Convert a "."static StringconvertResourcePathToClassName(String resourcePath) Convert a "/"-based resource path to a "."static Class<?>createCompositeInterface(Class<?>[] interfaces, ClassLoader classLoader) Create a composite interface Class for the given interfaces, implementing the given interfaces in one single Class.static Class<?>determineCommonAncestor(Class<?> clazz1, Class<?> clazz2) Determine the common ancestor of the given classes, if any.static <T> Class<T>Replacement forClass.forName()that also returns Class instances for primitives (e.g.static <T> Class<T>forName(String name, ClassLoader classLoader) Replacement forClass.forName()that also returns Class instances for primitives (e.g.static Class<?>[]getAllInterfaces(Object instance) Return all interfaces that the given instance implements as an array, including ones implemented by superclasses.getAllInterfacesAsSet(Object instance) Return all interfaces that the given instance implements as a Set, including ones implemented by superclasses.static Class<?>[]getAllInterfacesForClass(Class<?> clazz) Return all interfaces that the given class implements as an array, including ones implemented by superclasses.static Class<?>[]getAllInterfacesForClass(Class<?> clazz, ClassLoader classLoader) Return all interfaces that the given class implements as an array, including ones implemented by superclasses.getAllInterfacesForClassAsSet(Class<?> clazz) Return all interfaces that the given class implements as a Set, including ones implemented by superclasses.getAllInterfacesForClassAsSet(Class<?> clazz, ClassLoader classLoader) Return all interfaces that the given class implements as a Set, including ones implemented by superclasses.static StringgetClassFileName(Class<?> clazz) Determine the name of the class file, relative to the containing package: e.g.static StringgetClassName(byte[] classFile) static Stringstatic StringgetClassName(Resource resource) static StringgetClassName(InputStream inputStream) static ClassLoaderReturn the default ClassLoader to use: typically the thread context ClassLoader, if available; the ClassLoader that loaded the ClassUtils class will be used as fallback.static StringgetDescriptiveType(Object value) Return a descriptive name for the given object's type: usually simply the class name, but component type class name + "[]" for arrays, and an appended list of implemented interfaces for JDK proxies.static Class<?>getEnumType(Class<?> targetType) static StringgetFullyClassFileName(Class<?> clazz) Determine the name of the class file, relative to the containing package: e.g.static Type[]getGenerics(Class<?> type) static Class<?>[]getGenerics(Class<?> type, Class<?> superClass) Find generics in target classstatic Type[]getGenericTypes(Field property) static Type[]getGenericTypes(Parameter parameter) static StringgetPackageName(Class<?> clazz) Determine the name of the package of the given class, e.g.static StringgetPackageName(String fqClassName) Determine the name of the package of the given fully-qualified class name, e.g.static StringgetQualifiedMethodName(Method method) Return the qualified name of the given method, consisting of fully qualified interface/class name + "." + method name.static StringgetQualifiedMethodName(Method method, Class<?> clazz) Return the qualified name of the given method, consisting of fully qualified interface/class name + "." + method name.static StringgetQualifiedName(Class<?> clazz) Return the qualified name of the given class: usually simply the class name, but component type class name + "[]" for arrays.static StringgetShortName(Class<?> clazz) Get the class name without the qualified package name.static StringgetShortName(String className) Get the class name without the qualified package name.static StringgetShortNameAsProperty(Class<?> clazz) Return the short string name of a Java class in uncapitalized JavaBeans property format.static StringgetSimpleName(String className) static <T> Class<T>getUserClass(Class<T> syntheticClass) If the class is dynamically generated then the user class will be extracted in a specific format.static <T> Class<T>getUserClass(String name) If the class is dynamically generated then the user class will be extracted in a specific format.static <T> Class<T>getUserClass(T synthetic) If the class is dynamically generated then the user class will be extracted in a specific format.static booleanisAssignable(Class<?> lhsType, Class<?> rhsType) Check if the right-hand side type may be assigned to the left-hand side type, assuming setting by reflection.static booleanisAssignableValue(Class<?> type, Object value) Determine if the given type is assignable from the given value, assuming setting by reflection.static booleanisCacheSafe(Class<?> clazz, ClassLoader classLoader) Check whether the given class is cache-safe in the given context, i.e. whether it is loaded by the given ClassLoader or a parent of it.static booleanisInnerClass(Class<?> clazz) Determine if the supplied class is an inner class, i.e. a non-static member of an enclosing class.static booleanisJavaLanguageInterface(Class<?> ifc) Determine whether the given interface is a common Java language interface:Serializable,Externalizable,Closeable,AutoCloseable,Cloneable,Comparable- all of which can be ignored when looking for 'primary' user-level interfaces.static booleanisLambdaClass(Class<?> clazz) Determine if the suppliedClassis a JVM-generated implementation class for a lambda expression or method reference.static booleanDetermine whether theClassidentified by the supplied name is present and can be loaded.static booleanisPresent(String className, ClassLoader classLoader) Determine whether theClassidentified by the supplied name is present and can be loaded.static booleanisPrimitiveArray(Class<?> clazz) Check if the given class represents an array of primitives, i.e. boolean, byte, char, short, int, long, float, or double.static booleanisPrimitiveOrWrapper(Class<?> clazz) Check if the given class represents a primitive (i.e. boolean, byte, char, short, int, long, float, or double),void, or a wrapper for those types (i.e.static booleanisPrimitiveWrapper(Class<?> clazz) Check if the given class represents a primitive wrapper, i.e.static booleanisPrimitiveWrapperArray(Class<?> clazz) Check if the given class represents an array of primitive wrappers, i.e.static booleanisSimpleType(Class<?> clazz) Tells us if the class passed in is a known common typestatic booleanisUserLevelMethod(Method method) Determine whether the given method is declared by the user or at least pointing to a user-declared method.static booleanisVisible(Class<?> clazz, ClassLoader classLoader) Check whether the given class is visible in the given ClassLoader.static <T> Class<T>Load classstatic <T> Class<T>load(String name, ClassLoader classLoader) Load class with given class name andClassLoaderstatic booleanmatchesTypeName(Class<?> clazz, String typeName) Check whether the given class matches the user-specified type name.static ClassLoaderoverrideThreadContextClassLoader(ClassLoader classLoaderToUse) Override the thread context ClassLoader with the environment's bean ClassLoader if necessary, i.e. if the bean ClassLoader is not equivalent to the thread context ClassLoader already.static <T> Class<T>resolveClassName(String className, ClassLoader classLoader) Resolve the given class name into a Class instance.static Class<?>static Class<?>resolvePrimitiveIfNecessary(Class<?> clazz) Resolve the given class if it is a primitive class, returning the corresponding primitive wrapper type instead.static Class<?>[]toClassArray(Collection<Class<?>> collection) Copy the givenCollectioninto aClassarray.
-
字段详细资料
-
CGLIB_CLASS_SEPARATOR
The CGLIB class separator:"$$".- 另请参阅:
-
INNER_CLASS_SEPARATOR
public static final char INNER_CLASS_SEPARATOR- 另请参阅:
-
ARRAY_SUFFIX
Suffix for array class names:"[]".- 另请参阅:
-
INTERNAL_ARRAY_PREFIX
Prefix for internal array class names:"[".- 另请参阅:
-
NON_PRIMITIVE_ARRAY_PREFIX
Prefix for internal non-primitive array class names:"[L".- 另请参阅:
-
CLASS_FILE_SUFFIX
- 另请参阅:
-
primitiveTypes
- 从以下版本开始:
- 3.0
-
-
构造器详细资料
-
ClassUtils
public ClassUtils()
-
-
方法详细资料
-
getDefaultClassLoader
Return the default ClassLoader to use: typically the thread context ClassLoader, if available; the ClassLoader that loaded the ClassUtils class will be used as fallback.Call this method if you intend to use the thread context ClassLoader in a scenario where you clearly prefer a non-null ClassLoader reference: for example, for class path resource loading (but not necessarily for
Class.forName, which accepts anullClassLoader reference as well).- 返回:
- the default ClassLoader (only
nullif even the system ClassLoader isn't accessible) - 从以下版本开始:
- 4.0
- 另请参阅:
-
overrideThreadContextClassLoader
@Nullable public static ClassLoader overrideThreadContextClassLoader(@Nullable ClassLoader classLoaderToUse) Override the thread context ClassLoader with the environment's bean ClassLoader if necessary, i.e. if the bean ClassLoader is not equivalent to the thread context ClassLoader already.- 参数:
classLoaderToUse- the actual ClassLoader to use for the thread context- 返回:
- the original thread context ClassLoader, or
nullif not overridden - 从以下版本开始:
- 4.0
-
isPresent
Determine whether theClassidentified by the supplied name is present and can be loaded. Will returnfalseif either the class or one of its dependencies is not present or cannot be loaded.use default class loader
- 参数:
className- the name of the class to check- 返回:
- whether the specified class is present (including all of its superclasses and interfaces)
- 抛出:
IllegalStateException- if the corresponding class is resolvable but there was a readability mismatch in the inheritance hierarchy of the class (typically a missing dependency declaration in a Jigsaw module definition for a superclass or interface implemented by the class to be checked here)
-
isPresent
Determine whether theClassidentified by the supplied name is present and can be loaded. Will returnfalseif either the class or one of its dependencies is not present or cannot be loaded.- 参数:
className- the name of the class to checkclassLoader- the class loader to use (may benullwhich indicates the default class loader)- 返回:
- whether the specified class is present (including all of its superclasses and interfaces)
- 抛出:
IllegalStateException- if the corresponding class is resolvable but there was a readability mismatch in the inheritance hierarchy of the class (typically a missing dependency declaration in a Jigsaw module definition for a superclass or interface implemented by the class to be checked here)
-
resolvePrimitiveClassName
-
forName
public static <T> Class<T> forName(String name, @Nullable ClassLoader classLoader) throws ClassNotFoundException, LinkageError Replacement forClass.forName()that also returns Class instances for primitives (e.g. "int") and array class names (e.g. "String[]"). Furthermore, it is also capable of resolving nested class names in Java source style (e.g. "java.lang.Thread.State" instead of "java.lang.Thread$State").- 参数:
name- the name of the ClassclassLoader- the class loader to use (may benull, which indicates the default class loader)- 返回:
- a class instance for the supplied name
- 抛出:
ClassNotFoundException- if the class was not foundLinkageError- if the class file could not be loaded- 从以下版本开始:
- 2.1.7
- 另请参阅:
-
forName
Replacement forClass.forName()that also returns Class instances for primitives (e.g. "int") and array class names (e.g. "String[]"). Furthermore, it is also capable of resolving nested class names in Java source style (e.g. "java.lang.Thread.State" instead of "java.lang.Thread$State").use default class loader, from spring
- 参数:
name- the name of the Class- 返回:
- a class instance for the supplied name
- 抛出:
ClassNotFoundException- when class could not be found- 从以下版本开始:
- 2.1.6
-
resolveClassName
public static <T> Class<T> resolveClassName(String className, @Nullable ClassLoader classLoader) throws IllegalArgumentException Resolve the given class name into a Class instance. Supports primitives (like "int") and array class names (like "String[]").This is effectively equivalent to the
forNamemethod with the same arguments, with the only difference being the exceptions thrown in case of class loading failure.- 参数:
className- the name of the ClassclassLoader- the class loader to use (may benull, which indicates the default class loader)- 返回:
- a class instance for the supplied name
- 抛出:
IllegalArgumentException- if the class name was not resolvable (that is, the class could not be found or the class file could not be loaded)IllegalStateException- if the corresponding class is resolvable but there was a readability mismatch in the inheritance hierarchy of the class (typically a missing dependency declaration in a Jigsaw module definition for a superclass or interface implemented by the class to be loaded here)- 从以下版本开始:
- 4.0
- 另请参阅:
-
load
Load class- 类型参数:
T- return class type- 参数:
name- class full name- 返回:
- class if not found will returns null
-
load
Load class with given class name andClassLoader- 类型参数:
T- return class type- 参数:
name- class full nameclassLoader- use thisClassLoaderload the class- 返回:
- null if cannot load
-
getClassName
-
getClassName
-
getClassName
- 抛出:
IOException
-
getClassName
- 抛出:
IOException
-
isJavaLanguageInterface
Determine whether the given interface is a common Java language interface:Serializable,Externalizable,Closeable,AutoCloseable,Cloneable,Comparable- all of which can be ignored when looking for 'primary' user-level interfaces. Common characteristics: no service-level operations, no bean property methods, no default methods.- 参数:
ifc- the interface to check- 从以下版本开始:
- 4.0
-
isInnerClass
Determine if the supplied class is an inner class, i.e. a non-static member of an enclosing class.- 返回:
trueif the supplied class is an inner class- 从以下版本开始:
- 4.0
- 另请参阅:
-
isLambdaClass
Determine if the suppliedClassis a JVM-generated implementation class for a lambda expression or method reference.This method makes a best-effort attempt at determining this, based on checks that work on modern, main stream JVMs.
- 参数:
clazz- the class to check- 返回:
trueif the class is a lambda implementation class- 从以下版本开始:
- 4.0
-
getUserClass
If the class is dynamically generated then the user class will be extracted in a specific format.- 参数:
synthetic- Input object- 返回:
- The user class
- 从以下版本开始:
- 2.1.7
-
getUserClass
If the class is dynamically generated then the user class will be extracted in a specific format.- 参数:
syntheticClass- input test class- 返回:
- The user class
- 从以下版本开始:
- 2.1.7
-
getUserClass
If the class is dynamically generated then the user class will be extracted in a specific format.- 参数:
name- Class name- 返回:
- The user class
- 从以下版本开始:
- 2.1.7
-
getDescriptiveType
Return a descriptive name for the given object's type: usually simply the class name, but component type class name + "[]" for arrays, and an appended list of implemented interfaces for JDK proxies.- 参数:
value- the value to introspect- 返回:
- the qualified name of the class
-
getGenerics
- 参数:
type- source type- 从以下版本开始:
- 2.1.7
-
getGenericTypes
-
getGenericTypes
-
getGenerics
Find generics in target class- 参数:
type- find generics in target classsuperClass- A interface class or super class- 返回:
- Target generics
Classs - 从以下版本开始:
- 3.0
-
getQualifiedMethodName
Return the qualified name of the given method, consisting of fully qualified interface/class name + "." + method name.- 参数:
method- the method- 返回:
- the qualified name of the method
-
getQualifiedMethodName
Return the qualified name of the given method, consisting of fully qualified interface/class name + "." + method name.- 参数:
method- the methodclazz- the clazz that the method is being invoked on (may benullto indicate the method's declaring class)- 返回:
- the qualified name of the method
-
isSimpleType
Tells us if the class passed in is a known common type- 参数:
clazz- The class to check- 返回:
- True if the class is known
-
getAllInterfaces
Return all interfaces that the given instance implements as an array, including ones implemented by superclasses.- 参数:
instance- the instance to analyze for interfaces- 返回:
- all interfaces that the given instance implements as an array
- 从以下版本开始:
- 3.0
-
getAllInterfacesForClass
Return all interfaces that the given class implements as an array, including ones implemented by superclasses.If the class itself is an interface, it gets returned as sole interface.
- 参数:
clazz- the class to analyze for interfaces- 返回:
- all interfaces that the given object implements as an array
- 从以下版本开始:
- 3.0
-
getAllInterfacesForClass
Return all interfaces that the given class implements as an array, including ones implemented by superclasses.If the class itself is an interface, it gets returned as sole interface.
- 参数:
clazz- the class to analyze for interfacesclassLoader- the ClassLoader that the interfaces need to be visible in (may benullwhen accepting all declared interfaces)- 返回:
- all interfaces that the given object implements as an array
- 从以下版本开始:
- 3.0
-
toClassArray
Copy the givenCollectioninto aClassarray.The
Collectionmust containClasselements only.- 参数:
collection- theCollectionto copy- 返回:
- the
Classarray - 从以下版本开始:
- 3.0
- 另请参阅:
-
getAllInterfacesAsSet
Return all interfaces that the given instance implements as a Set, including ones implemented by superclasses.- 参数:
instance- the instance to analyze for interfaces- 返回:
- all interfaces that the given instance implements as a Set
- 从以下版本开始:
- 3.0
-
getAllInterfacesForClassAsSet
Return all interfaces that the given class implements as a Set, including ones implemented by superclasses.If the class itself is an interface, it gets returned as sole interface.
- 参数:
clazz- the class to analyze for interfaces- 返回:
- all interfaces that the given object implements as a Set
- 从以下版本开始:
- 3.0
-
getAllInterfacesForClassAsSet
Return all interfaces that the given class implements as a Set, including ones implemented by superclasses.If the class itself is an interface, it gets returned as sole interface.
- 参数:
clazz- the class to analyze for interfacesclassLoader- the ClassLoader that the interfaces need to be visible in (may benullwhen accepting all declared interfaces)- 返回:
- all interfaces that the given object implements as a Set
- 从以下版本开始:
- 3.0
-
createCompositeInterface
public static Class<?> createCompositeInterface(Class<?>[] interfaces, @Nullable ClassLoader classLoader) Create a composite interface Class for the given interfaces, implementing the given interfaces in one single Class.This implementation builds a JDK proxy class for the given interfaces.
- 参数:
interfaces- the interfaces to mergeclassLoader- the ClassLoader to create the composite Class in- 返回:
- the merged interface as Class
- 抛出:
IllegalArgumentException- if the specified interfaces expose conflicting method signatures (or a similar constraint is violated)- 从以下版本开始:
- 4.0
- 另请参阅:
-
determineCommonAncestor
@Nullable public static Class<?> determineCommonAncestor(@Nullable Class<?> clazz1, @Nullable Class<?> clazz2) Determine the common ancestor of the given classes, if any.- 参数:
clazz1- the class to introspectclazz2- the other class to introspect- 返回:
- the common ancestor (i.e. common superclass, one interface
extending the other), or
nullif none found. If any of the given classes isnull, the other class will be returned. - 从以下版本开始:
- 4.0
-
isCacheSafe
Check whether the given class is cache-safe in the given context, i.e. whether it is loaded by the given ClassLoader or a parent of it.- 参数:
clazz- the class to analyzeclassLoader- the ClassLoader to potentially cache metadata in (may benullwhich indicates the system class loader)- 从以下版本开始:
- 4.0
-
isVisible
Check whether the given class is visible in the given ClassLoader.- 参数:
clazz- the class to check (typically an interface)classLoader- the ClassLoader to check against (may benullin which case this method will always returntrue)- 从以下版本开始:
- 3.0
-
classNamesToString
Build a String that consists of the names of the classes/interfaces in the given array.Basically like
AbstractCollection.toString(), but stripping the "class "/"interface " prefix before every class name.- 参数:
classes- an array of Class objects- 返回:
- a String of form "[com.foo.Bar, com.foo.Baz]"
- 从以下版本开始:
- 3.0
- 另请参阅:
-
classNamesToString
Build a String that consists of the names of the classes/interfaces in the given collection.Basically like
AbstractCollection.toString(), but stripping the "class "/"interface " prefix before every class name.- 参数:
classes- a Collection of Class objects (may benull)- 返回:
- a String of form "[com.foo.Bar, com.foo.Baz]"
- 从以下版本开始:
- 3.0
- 另请参阅:
-
getPackageName
Determine the name of the package of the given class, e.g. "java.lang" for thejava.lang.Stringclass.- 参数:
clazz- the class- 返回:
- the package name, or the empty String if the class is defined in the default package
- 从以下版本开始:
- 3.0
-
getPackageName
Determine the name of the package of the given fully-qualified class name, e.g. "java.lang" for thejava.lang.Stringclass name.- 参数:
fqClassName- the fully-qualified class name- 返回:
- the package name, or the empty String if the class is defined in the default package
- 从以下版本开始:
- 3.0
-
adaptArgumentsIfNecessary
Adapt the given arguments to the target signature in the given method, if necessary: in particular, if a given vararg argument array does not match the array type of the declared vararg parameter in the method.- 参数:
method- the target methodarguments- the given arguments- 返回:
- a cloned argument array, or the original if no adaptation is needed
-
getQualifiedName
Return the qualified name of the given class: usually simply the class name, but component type class name + "[]" for arrays.- 参数:
clazz- the class- 返回:
- the qualified name of the class
- 从以下版本开始:
- 3.0
-
getShortName
Get the class name without the qualified package name.- 参数:
className- the className to get the short name for- 返回:
- the class name of the class without the package name
- 抛出:
IllegalArgumentException- if the className is empty- 从以下版本开始:
- 3.0
-
getSimpleName
-
matchesTypeName
Check whether the given class matches the user-specified type name.- 参数:
clazz- the class to checktypeName- the type name to match- 从以下版本开始:
- 4.0
-
getShortName
Get the class name without the qualified package name.- 参数:
clazz- the class to get the short name for- 返回:
- the class name of the class without the package name
- 从以下版本开始:
- 3.0
-
getShortNameAsProperty
Return the short string name of a Java class in uncapitalized JavaBeans property format. Strips the outer class name in case of a nested class.- 参数:
clazz- the class- 返回:
- the short name rendered in a standard JavaBeans property format
- 从以下版本开始:
- 4.0
- 另请参阅:
-
getClassFileName
Determine the name of the class file, relative to the containing package: e.g. "String.class"- 参数:
clazz- the class- 返回:
- the file name of the ".class" file
- 从以下版本开始:
- 4.0
-
getFullyClassFileName
Determine the name of the class file, relative to the containing package: e.g. "java/lang/String.class"- 参数:
clazz- the class- 返回:
- the file name of the ".class" file
- 从以下版本开始:
- 4.0
-
classPackageAsResourcePath
Given an input class object, return a string which consists of the class's package name as a pathname, i.e., all dots ('.') are replaced by slashes ('/'). Neither a leading nor trailing slash is added. The result could be concatenated with a slash and the name of a resource and fed directly toClassLoader.getResource(). For it to be fed toClass.getResourceinstead, a leading slash would also have to be prepended to the returned value.- 参数:
clazz- the input class. Anullvalue or the default (empty) package will result in an empty string ("") being returned.- 返回:
- a path which represents the package name
- 从以下版本开始:
- 3.0
- 另请参阅:
-
convertResourcePathToClassName
Convert a "/"-based resource path to a "."-based fully qualified class name.- 参数:
resourcePath- the resource path pointing to a class- 返回:
- the corresponding fully qualified class name
- 从以下版本开始:
- 4.0
-
convertClassNameToResourcePath
Convert a "."-based fully qualified class name to a "/"-based resource path.- 参数:
className- the fully qualified class name- 返回:
- the corresponding resource path, pointing to the class
- 从以下版本开始:
- 4.0
-
addResourcePathToPackagePath
Return a path suitable for use withClassLoader.getResource(also suitable for use withClass.getResourceby prepending a slash ('/') to the return value). Built by taking the package of the specified class file, converting all dots ('.') to slashes ('/'), adding a trailing slash if necessary, and concatenating the specified resource name to this.
As such, this function may be used to build a path suitable for loading a resource file that is in the same package as a class file, althoughClassPathResourceis usually even more convenient.- 参数:
clazz- the Class whose package will be used as the baseresourceName- the resource name to append. A leading slash is optional.- 返回:
- the built-up resource path
- 从以下版本开始:
- 4.0
- 另请参阅:
-
getEnumType
- 抛出:
IllegalArgumentException- target is not a enum- 从以下版本开始:
- 3.0
-
isPrimitiveWrapper
Check if the given class represents a primitive wrapper, i.e. Boolean, Byte, Character, Short, Integer, Long, Float, Double, or Void.- 参数:
clazz- the class to check- 返回:
- whether the given class is a primitive wrapper class
- 从以下版本开始:
- 4.0
-
isPrimitiveOrWrapper
Check if the given class represents a primitive (i.e. boolean, byte, char, short, int, long, float, or double),void, or a wrapper for those types (i.e. Boolean, Byte, Character, Short, Integer, Long, Float, Double, or Void).- 参数:
clazz- the class to check- 返回:
trueif the given class represents a primitive, void, or a wrapper class- 从以下版本开始:
- 4.0
-
isPrimitiveArray
Check if the given class represents an array of primitives, i.e. boolean, byte, char, short, int, long, float, or double.- 参数:
clazz- the class to check- 返回:
- whether the given class is a primitive array class
- 从以下版本开始:
- 4.0
-
isPrimitiveWrapperArray
Check if the given class represents an array of primitive wrappers, i.e. Boolean, Byte, Character, Short, Integer, Long, Float, or Double.- 参数:
clazz- the class to check- 返回:
- whether the given class is a primitive wrapper array class
- 从以下版本开始:
- 4.0
-
resolvePrimitiveIfNecessary
Resolve the given class if it is a primitive class, returning the corresponding primitive wrapper type instead.- 参数:
clazz- the class to check- 返回:
- the original class, or a primitive wrapper for the original primitive type
- 从以下版本开始:
- 4.0
-
isAssignable
Check if the right-hand side type may be assigned to the left-hand side type, assuming setting by reflection. Considers primitive wrapper classes as assignable to the corresponding primitive types.- 参数:
lhsType- the target typerhsType- the value type that should be assigned to the target type- 返回:
- if the target type is assignable from the value type
- 从以下版本开始:
- 4.0
- 另请参阅:
-
isAssignableValue
Determine if the given type is assignable from the given value, assuming setting by reflection. Considers primitive wrapper classes as assignable to the corresponding primitive types.- 参数:
type- the target typevalue- the value that should be assigned to the type- 返回:
- if the type is assignable from the value
- 从以下版本开始:
- 4.0
-
isUserLevelMethod
Determine whether the given method is declared by the user or at least pointing to a user-declared method.Checks
Method.isSynthetic()(for implementation methods) as well as theGroovyObjectinterface (for interface methods; on an implementation class, implementations of theGroovyObjectmethods will be marked as synthetic anyway). Note that, despite being synthetic, bridge methods (Method.isBridge()) are considered as user-level methods since they are eventually pointing to a user-declared generic method.- 参数:
method- the method to check- 返回:
trueif the method can be considered as user-declared;falseotherwise- 从以下版本开始:
- 4.0
-