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 boolean
classIsAccessible(String name)
static boolean
classIsArray(Class theClass)
Test whether a Class is an arraystatic boolean
classnameIsArray(String classname)
Test whether a classname is an arraystatic boolean
classnameIsPrimitiveArray(String classname)
Test whether a classname is a primitive arraystatic String[]
classnamesFromSignature(Class[] classes)
Return the corresponding classes for each classname.static Class
convertArrayClass(Class arrayClass, Class newInnerType)
Convert inner element to another type.static String
expandClassName(String name)
Expand an abbreviated classname into its true java name.static Method
findMethod(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 int
getArrayDimensions(Class theClass)
static Class
getArrayElementClass(Class arrayClass)
static String
getArrayMemberClassName(String classname)
Get the classname for an array element.static Class<?>
getClassFromName(String classname)
Get a Class from a classname.static Object
getFieldValue(Class<?> theInterface, String name)
static String
getFriendlyClassname(Class theClass)
Get a "friendly" classname for a Class.static String
getFriendlyClassname(String type)
static Class
getInnerArrayElementClass(Class arrayClass)
static String
getPackagePrefix(String classname)
static Package[]
getPackages()
static Package[]
getPackages(ClassLoader cl)
static char
getPrimitiveArrayTypeCode(Class theClass)
Return the primitive element type code for an array of primitive types.static char
getPrimitiveArrayTypeCode(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 Object
instantiateDefault(Class<?> inClass)
Given a Class, create a new instance with an empty constructor.static Object
instantiateFromString(Class<?> theClass, String theString)
Given a Class and a String, create a new instance with a constructor that accept a String.static <T> T
instantiateObject(Class<T> theClass, Object[] args)
Create a new object of the specified class using a constructor that accepts the specified arguments.static <T> T
instantiateObject(Class<T> theClass, String theString)
Create a new object of the specified class using a String constructor.static boolean
isPrimitiveClass(Class theClass)
Test whether a class is a primitive class.static Class
objectClassToPrimitiveClass(Class theClass)
Map primitive class Classes to Object forms eg int.class to Integer.classstatic boolean
objectIsArray(Object o)
Test whether an Object is an arraystatic boolean
objectIsPrimitiveArray(Object o)
Test whether an Object is an array of primitive typesstatic Class
primitiveClassToObjectClass(Class theClass)
Map primitive class Classes to Object forms eg int.class to Integer.classstatic String
primitiveLetterToClassName(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 boolean
signaturesAreCompatible(Class<?>[] callee, Class<?>[] argsSignature)
Return true if caller signature is compatible with callee.static boolean
sigsEqual(Class[] sig1, Class[] sig2)
static String
stripPackageName(String classname)
Strip the package name.static String
stripPackagePrefix(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)
-
-