Save This Page
Home » openjdk-7 » sun » reflect » [javadoc | source]
sun.reflect
public class: ReflectionFactory [javadoc | source]
java.lang.Object
   sun.reflect.ReflectionFactory

The master factory for all reflective objects, both those in java.lang.reflect (Fields, Methods, Constructors) as well as their delegates (FieldAccessors, MethodAccessors, ConstructorAccessors).

The methods in this class are extremely unsafe and can cause subversion of both the language and the verifier. For this reason, they are all instance methods, and access to the constructor of this factory is guarded by a security check, in similar style to sun.misc.Unsafe .

Nested Class Summary:
public static final class  ReflectionFactory.GetReflectionFactoryAction  A convenience class for acquiring the capability to instantiate reflective objects. Use this instead of a raw call to {@link #getReflectionFactory} in order to avoid being limited by the permissions of your callers.

An instance of this class can be used as the argument of AccessController.doPrivileged

Method from sun.reflect.ReflectionFactory Summary:
copyConstructor,   copyField,   copyMethod,   getConstructorAccessor,   getMethodAccessor,   getReflectionFactory,   inflationThreshold,   newConstructor,   newConstructorAccessor,   newConstructorForSerialization,   newField,   newFieldAccessor,   newMethod,   newMethodAccessor,   setConstructorAccessor,   setLangReflectAccess,   setMethodAccessor
Methods from java.lang.Object:
clone,   equals,   finalize,   getClass,   hashCode,   notify,   notifyAll,   toString,   wait,   wait,   wait
Method from sun.reflect.ReflectionFactory Detail:
 public Constructor<T> copyConstructor(Constructor<T> arg) 
    Makes a copy of the passed constructor. The returned constructor is a "child" of the passed one; see the comments in Constructor.java for details.
 public Field copyField(Field arg) 
    Makes a copy of the passed field. The returned field is a "child" of the passed one; see the comments in Field.java for details.
 public Method copyMethod(Method arg) 
    Makes a copy of the passed method. The returned method is a "child" of the passed one; see the comments in Method.java for details.
 public ConstructorAccessor getConstructorAccessor(Constructor c) 
    Gets the ConstructorAccessor object for a java.lang.reflect.Constructor
 public MethodAccessor getMethodAccessor(Method m) 
    Gets the MethodAccessor object for a java.lang.reflect.Method
 public static ReflectionFactory getReflectionFactory() 
    Provides the caller with the capability to instantiate reflective objects.

    First, if there is a security manager, its checkPermission method is called with a java.lang.RuntimePermission with target "reflectionFactoryAccess". This may result in a security exception.

    The returned ReflectionFactory object should be carefully guarded by the caller, since it can be used to read and write private data and invoke private methods, as well as to load unverified bytecodes. It must never be passed to untrusted code.

 static int inflationThreshold() 
 public Constructor newConstructor(Class<?> declaringClass,
    Class<?>[] parameterTypes,
    Class<?>[] checkedExceptions,
    int modifiers,
    int slot,
    String signature,
    byte[] annotations,
    byte[] parameterAnnotations) 
    Creates a new java.lang.reflect.Constructor. Access checks as per java.lang.reflect.AccessibleObject are not overridden.
 public ConstructorAccessor newConstructorAccessor(Constructor c) 
 public Constructor newConstructorForSerialization(Class<?> classToInstantiate,
    Constructor constructorToCall) 
 public Field newField(Class<?> declaringClass,
    String name,
    Class<?> type,
    int modifiers,
    int slot,
    String signature,
    byte[] annotations) 
    Creates a new java.lang.reflect.Field. Access checks as per java.lang.reflect.AccessibleObject are not overridden.
 public FieldAccessor newFieldAccessor(Field field,
    boolean override) 
    Note: this routine can cause the declaring class for the field be initialized and therefore must not be called until the first get/set of this field.
 public Method newMethod(Class<?> declaringClass,
    String name,
    Class<?>[] parameterTypes,
    Class<?> returnType,
    Class<?>[] checkedExceptions,
    int modifiers,
    int slot,
    String signature,
    byte[] annotations,
    byte[] parameterAnnotations,
    byte[] annotationDefault) 
    Creates a new java.lang.reflect.Method. Access checks as per java.lang.reflect.AccessibleObject are not overridden.
 public MethodAccessor newMethodAccessor(Method method) 
 public  void setConstructorAccessor(Constructor c,
    ConstructorAccessor accessor) 
    Sets the ConstructorAccessor object for a java.lang.reflect.Constructor
 public  void setLangReflectAccess(LangReflectAccess access) 
    Called only by java.lang.reflect.Modifier's static initializer
 public  void setMethodAccessor(Method m,
    MethodAccessor accessor) 
    Sets the MethodAccessor object for a java.lang.reflect.Method