Documentation of 'javolution37.javolution.lang.Reflection' Java class
Reflection
javolution37.javolution.lang

Class Reflection



  • public final class Reflection
    extends java.lang.Object

    This 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 is null (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 class  Reflection.Constructor
      This class represents a run-time constructor obtained through reflection.
      static class  Reflection.Method
      This 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.Class getClass(java.lang.String name)
      Returns and initializes the class having the specified name (returns null if the class is not found).
      static Reflection.Constructor getConstructor(java.lang.String signature)
      Returns the constructor having the specified signature.
      static Reflection.Method getMethod(java.lang.String signature)
      Returns the method having the specified signature.
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • getClass

        public static java.lang.Class getClass(java.lang.String name)
        Returns and initializes the class having the specified name (returns null if the class is not found). This method searches the Reflection.class class 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 null if the class is not found or if an error occurs during initialization (in which case a warning or error is logged).
      • 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 null if 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 null if none found.

DMelt 3.0 © DataMelt by jWork.ORG

You see the box below because you did not login.