Package org.glassfish.admin.amx.util
Class ClassUtil
- java.lang.Object
-
- org.glassfish.admin.amx.util.ClassUtil
-
public final class ClassUtil extends Object
Provides a variety of useful utilities having to do with classes, types of objects, etc.
-
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static Class<?>classForName(String name)static booleanclassIsAccessible(String name)static booleanclassIsArray(Class theClass)Test whether a Class is an arraystatic booleanclassnameIsArray(String classname)Test whether a classname is an arraystatic booleanclassnameIsPrimitiveArray(String classname)Test whether a classname is a primitive arraystatic String[]classnamesFromSignature(Class[] classes)Return the corresponding classes for each classname.static ClassconvertArrayClass(Class arrayClass, Class newInnerType)Convert inner element to another type.static StringexpandClassName(String name)Expand an abbreviated classname into its true java name.static MethodfindMethod(Class<?> theClass, String methodName, Class<?>[] sig)Find all methods that match the name.static Set<Method>findMethods(Method[] candidates, String methodName)Find all methods that match the name.static intgetArrayDimensions(Class theClass)static ClassgetArrayElementClass(Class arrayClass)static StringgetArrayMemberClassName(String classname)Get the classname for an array element.static Class<?>getClassFromName(String classname)Get a Class from a classname.static ObjectgetFieldValue(Class<?> theInterface, String name)static StringgetFriendlyClassname(Class theClass)Get a "friendly" classname for a Class.static StringgetFriendlyClassname(String type)static ClassgetInnerArrayElementClass(Class arrayClass)static StringgetPackagePrefix(String classname)static Package[]getPackages()static Package[]getPackages(ClassLoader cl)static chargetPrimitiveArrayTypeCode(Class theClass)Return the primitive element type code for an array of primitive types.static chargetPrimitiveArrayTypeCode(String classname)Return the primitive element type code for an array of primitive types.static String[]getTypes(Object[] args)Return the corresponding classes for each element in an Object[] If an element is null, then its corresponding Class will also be null.static ObjectinstantiateDefault(Class<?> inClass)Given a Class, create a new instance with an empty constructor.static ObjectinstantiateFromString(Class<?> theClass, String theString)Given a Class and a String, create a new instance with a constructor that accept a String.static <T> TinstantiateObject(Class<T> theClass, Object[] args)Create a new object of the specified class using a constructor that accepts the specified arguments.static <T> TinstantiateObject(Class<T> theClass, String theString)Create a new object of the specified class using a String constructor.static booleanisPrimitiveClass(Class theClass)Test whether a class is a primitive class.static ClassobjectClassToPrimitiveClass(Class theClass)Map primitive class Classes to Object forms eg int.class to Integer.classstatic booleanobjectIsArray(Object o)Test whether an Object is an arraystatic booleanobjectIsPrimitiveArray(Object o)Test whether an Object is an array of primitive typesstatic ClassprimitiveClassToObjectClass(Class theClass)Map primitive class Classes to Object forms eg int.class to Integer.classstatic StringprimitiveLetterToClassName(char primitive)Convert a primitive class letter to its corresponding class name.static Class[]signatureFromClassnames(String[] classnames)Return the corresponding classes for each classname.static booleansignaturesAreCompatible(Class<?>[] callee, Class<?>[] argsSignature)Return true if caller signature is compatible with callee.static booleansigsEqual(Class[] sig1, Class[] sig2)static StringstripPackageName(String classname)Strip the package name.static StringstripPackagePrefix(String classname)
-
-
-
Method Detail
-
classIsAccessible
public static boolean classIsAccessible(String name)
-
objectIsArray
public static boolean objectIsArray(Object o)
Test whether an Object is an array- Parameters:
o- object to test- Returns:
- true if the object is an array, false otherwise.
-
classIsArray
public static boolean classIsArray(Class theClass)
Test whether a Class is an array- Parameters:
theClass- class to test- Returns:
- true if the class is an array, false otherwise.
-
objectIsPrimitiveArray
public static boolean objectIsPrimitiveArray(Object o)
Test whether an Object is an array of primitive types- Parameters:
o- object to test- Returns:
- true if the object is an array, false otherwise.
-
classnameIsArray
public static boolean classnameIsArray(String classname)
Test whether a classname is an array- Parameters:
classname- classname string- Returns:
- true if the object is an array, false otherwise.
-
stripPackageName
public static String stripPackageName(String classname)
Strip the package name.- Parameters:
classname- classname string- Returns:
- the classname, without its package
-
classnameIsPrimitiveArray
public static boolean classnameIsPrimitiveArray(String classname)
Test whether a classname is a primitive array- Parameters:
classname- classname string- Returns:
- true if the object is a primitive array, false otherwise.
-
getPrimitiveArrayTypeCode
public static char getPrimitiveArrayTypeCode(Class theClass)
Return the primitive element type code for an array of primitive types. Same as getPrimitiveArrayTypeCode( theClass.getName() )- Parameters:
theClass- the Class object- Returns:
- the element type code; otherwise (char)0
-
getPrimitiveArrayTypeCode
public static char getPrimitiveArrayTypeCode(String classname)
Return the primitive element type code for an array of primitive types.- Parameters:
classname- classname string- Returns:
- the element type code; otherwise (char)0
-
getArrayMemberClassName
public static String getArrayMemberClassName(String classname)
Get the classname for an array element.- Parameters:
classname- classname string- Returns:
- the classname for the array element
-
classForName
public static Class<?> classForName(String name) throws ClassNotFoundException
- Throws:
ClassNotFoundException
-
getClassFromName
public static Class<?> getClassFromName(String classname) throws ClassNotFoundException
Get a Class from a classname. Class.forName does not work for primitive types; this methods returns the correct Class for any type.- Parameters:
classname- classname string- Returns:
- the classname for the array element
- Throws:
ClassNotFoundException
-
primitiveClassToObjectClass
public static Class primitiveClassToObjectClass(Class theClass)
Map primitive class Classes to Object forms eg int.class to Integer.class- Parameters:
theClass- the class to map- Returns:
- the corresponding Object class or the original Class if not a primitive.
-
objectClassToPrimitiveClass
public static Class objectClassToPrimitiveClass(Class theClass)
Map primitive class Classes to Object forms eg int.class to Integer.class- Parameters:
theClass- the class to map- Returns:
- the corresponding Object class or the original Class if not a primitive.
-
isPrimitiveClass
public static boolean isPrimitiveClass(Class theClass)
Test whether a class is a primitive class.- Parameters:
theClass- the class to test- Returns:
- true if it's a primitive class, false otherwise.
-
primitiveLetterToClassName
public static String primitiveLetterToClassName(char primitive)
Convert a primitive class letter to its corresponding class name.- Parameters:
primitive- the primitive character code- Returns:
- the corresponding classname
-
getTypes
public static String[] getTypes(Object[] args)
Return the corresponding classes for each element in an Object[] If an element is null, then its corresponding Class will also be null.- Parameters:
args- an array of objects.- Returns:
- an array of classes
-
signatureFromClassnames
public static Class[] signatureFromClassnames(String[] classnames) throws ClassNotFoundException
Return the corresponding classes for each classname. If an element is null, then its corresponding Class will also be null.- Parameters:
classnames- an array of classnames.- Returns:
- an array of classes
- Throws:
ClassNotFoundException
-
classnamesFromSignature
public static String[] classnamesFromSignature(Class[] classes)
Return the corresponding classes for each classname. If an element is null, then its corresponding Class will also be null.- Parameters:
classes- an array of classnames.- Returns:
- an array of classes
-
getFriendlyClassname
public static String getFriendlyClassname(Class theClass)
Get a "friendly" classname for a Class.Calls getFriendlyClassname( theClass.getName() )
- Parameters:
theClass- the class for which the name should be gotten- Returns:
- the "friendly" name
-
getArrayDimensions
public static int getArrayDimensions(Class theClass)
-
getInnerArrayElementClass
public static Class getInnerArrayElementClass(Class arrayClass) throws ClassNotFoundException
- Throws:
ClassNotFoundException
-
signaturesAreCompatible
public static boolean signaturesAreCompatible(Class<?>[] callee, Class<?>[] argsSignature)
Return true if caller signature is compatible with callee.- Parameters:
callee- the signature of the method to be calledargsSignature- the signature of the argument list
-
findMethod
public static Method findMethod(Class<?> theClass, String methodName, Class<?>[] sig)
Find all methods that match the name.
-
findMethods
public static Set<Method> findMethods(Method[] candidates, String methodName)
Find all methods that match the name.
-
instantiateObject
public static <T> T instantiateObject(Class<T> theClass, Object[] args) throws Exception
Create a new object of the specified class using a constructor that accepts the specified arguments.- Parameters:
theClass- the Class of the desired Objectargs- the argument list for the constructor- Throws:
Exception
-
instantiateObject
public static <T> T instantiateObject(Class<T> theClass, String theString) throws Exception
Create a new object of the specified class using a String constructor.- Parameters:
theClass- the Class of the desired ObjecttheString- the string for a String constructor- Returns:
- the resulting Object
- Throws:
Exception
-
instantiateFromString
public static Object instantiateFromString(Class<?> theClass, String theString) throws Exception
Given a Class and a String, create a new instance with a constructor that accept a String. Primitive types are instantiated as their equivalent Object forms.- Parameters:
theClass- the class from which an instance should be instantiatedtheString- the string to be supplied to the constructor- Returns:
- the resulting Object
- Throws:
Exception
-
instantiateDefault
public static Object instantiateDefault(Class<?> inClass) throws Exception
Given a Class, create a new instance with an empty constructor. Primitive types are instantiated as their equivalent Object forms. Any value is acceptable in the newly created object.- Parameters:
inClass- the class from which an instance should be instantiated- Returns:
- the resulting Object
- Throws:
Exception
-
expandClassName
public static String expandClassName(String name)
Expand an abbreviated classname into its true java name. Turn "Integer" into "java.lang.Integer", etc.
-
convertArrayClass
public static Class convertArrayClass(Class arrayClass, Class newInnerType) throws ClassNotFoundException
Convert inner element to another type. Only works for arrays of Objects. Example: convertArrayClass( "[[[LObject;", "Long" ) =>[[[LLong;- Parameters:
arrayClass-newInnerType- the desired Class of the innermost element- Throws:
ClassNotFoundException
-
getPackages
public static Package[] getPackages()
-
getPackages
public static Package[] getPackages(ClassLoader cl)
-
-