public class

ReflectionFactory

extends Object
java.lang.Object
   ↳ sun.reflect.ReflectionFactory

Class Overview

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 Unsafe.

Summary

Nested Classes
class ReflectionFactory.GetReflectionFactoryAction A convenience class for acquiring the capability to instantiate reflective objects. 
Public Methods
Constructor copyConstructor(Constructor arg)
Makes a copy of the passed constructor.
Field copyField(Field arg)
Makes a copy of the passed field.
Method copyMethod(Method arg)
Makes a copy of the passed method.
ConstructorAccessor getConstructorAccessor(Constructor c)
Gets the ConstructorAccessor object for a java.lang.reflect.Constructor
MethodAccessor getMethodAccessor(Method m)
Gets the MethodAccessor object for a java.lang.reflect.Method
static ReflectionFactory getReflectionFactory()
Provides the caller with the capability to instantiate reflective objects.
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.
ConstructorAccessor newConstructorAccessor(Constructor c)
Constructor newConstructorForSerialization(Class classToInstantiate, Constructor constructorToCall)
Field newField(Class declaringClass, String name, Class type, int modifiers, int slot, String signature, byte[] annotations)
Creates a new java.lang.reflect.Field.
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.
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.
MethodAccessor newMethodAccessor(Method method)
void setConstructorAccessor(Constructor c, ConstructorAccessor accessor)
Sets the ConstructorAccessor object for a java.lang.reflect.Constructor
void setLangReflectAccess(LangReflectAccess access)
Called only by java.lang.reflect.Modifier's static initializer
void setMethodAccessor(Method m, MethodAccessor accessor)
Sets the MethodAccessor object for a java.lang.reflect.Method
[Expand]
Inherited Methods
From class java.lang.Object

Public Methods

public Constructor copyConstructor (Constructor 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 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.

Throws
SecurityException if a security manager exists and its checkPermission method doesn't allow access to the RuntimePermission "reflectionFactoryAccess".

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.

Parameters
field the field
override true if caller has overridden aaccessibility

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