(also recently known as interceptors or AOP?)
This package enables a metaobject to trap method calls and field
accesses on a regular Java object. It provides a class
Reflection, which is a main module for implementing
runtime behavioral reflection.
It also provides
as utilities for dynamically or statically
translating a regular class into a reflective class.
An instance of the reflective class is associated with
a runtime metaobject and a runtime class metaobject, which control
the behavior of that instance.
metaobject is created for every (base-level) instance but the
runtime class metaobject is created for every (base-level) class.
Metaobject is the root class of the runtime
ClassMetaobject is the root class
of the runtime class metaobject.
This package is provided as a sample implementation of the reflection mechanism with Javassist. All the programs in this package uses only the regular Javassist API; they never call any hidden methods.
The most significant class in this package is
See the description of this class first.
Interface Summary Interface Description MetalevelAn interface to access a metaobject and a class metaobject.
Class Summary Class Description ClassMetaobjectA runtime class metaobject. CompilerA bytecode translator for reflection. LoaderA class loader for reflection. MetaobjectA runtime metaobject. ReflectionThe class implementing the behavioral reflection mechanism. SampleA template used for defining a reflective class.
Exception Summary Exception Description CannotCreateExceptionSignals that
CannotInvokeExceptionThrown when method invocation using the reflection API has thrown an exception. CannotReflectExceptionThrown by
Reflectionwhen there is an attempt to reflect a class that is either an interface or a subclass of either ClassMetaobject or Metaobject.