Class Reflection
- java.lang.Object
-
- javolution37.javolution.lang.Reflection
-
public final class Reflection extends java.lang.ObjectThis utility class greatly facilitates the use of reflection to invoke constructors or methods which may or may not exist at runtime.
The constructors/methods are identified through their signatures represented as a
String. When the constructor/method does not exist (e.g. class not found) or when the platform does not support reflection, the constructor/method isnull(no exception raised). Here is an example of timer taking advantage of the new (JRE1.5+) high resolution time when available:public static long microTime() { if (NANO_TIME_METHOD != null) { // JRE 1.5+ Long time = (Long) NANO_TIME_METHOD.invoke(null); // Static method. return time.longValue() / 1000; } else { // Use the less accurate time in milliseconds. return System.currentTimeMillis() * 1000; } } private static final Reflection.Method NANO_TIME_METHOD = Reflection.getMethod("java.lang.System.nanoTime()");Arrays and primitive types are supported. For example:
Reflection.Constructor sbc = Reflection.getConstructor("java.lang.StringBuilder(int)"); if (sbc != null) { // JDK 1.5+ Object sb = sbc.newInstance(new Integer(32)); Reflection.Method append = Reflection.getMethod("java.lang.StringBuilder.append(char[], int, int)"); append.invoke(sb, new char[] { 'h', 'i' }, new Integer(0), new Integer(2)); System.out.println(sb); } > hi
-
-
Nested Class Summary
Nested Classes Modifier and Type Class and Description static classReflection.ConstructorThis class represents a run-time constructor obtained through reflection.static classReflection.MethodThis class represents a run-time method obtained through reflection.
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method and Description static java.lang.ClassgetClass(java.lang.String name)Returns and initializes the class having the specified name (returnsnullif the class is not found).static Reflection.ConstructorgetConstructor(java.lang.String signature)Returns the constructor having the specified signature.static Reflection.MethodgetMethod(java.lang.String signature)Returns the method having the specified signature.
-
-
-
Method Detail
-
getClass
public static java.lang.Class getClass(java.lang.String name)
Returns and initializes the class having the specified name (returnsnullif the class is not found). This method searches theReflection.classclass loader first (which might be the bootstrap class loader), then the context class loader and finally the system class loader.- Parameters:
name- the name of the class to search for.- Returns:
- the corresponding class or
nullif the class is not found or if an error occurs during initialization (in which case a warning or error islogged).
-
getConstructor
public static Reflection.Constructor getConstructor(java.lang.String signature)
Returns the constructor having the specified signature.- Parameters:
signature- the textual representation of the constructor signature.- Returns:
- the corresponding constructor or
nullif none found.
-
getMethod
public static Reflection.Method getMethod(java.lang.String signature)
Returns the method having the specified signature.- Parameters:
signature- the textual representation of the method signature.- Returns:
- the corresponding constructor or
nullif none found.
-
-
DMelt 3.0 © DataMelt by jWork.ORG