(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
a class Loader and Compiler
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.
The runtime
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
metaobject and 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 Reflection.
See the description of this class first.
| Modifier and Type | Interface and Description |
|---|---|
| public interface | Metalevel
An interface to access a metaobject and a class metaobject. |
| Modifier and Type | Class and Description |
|---|---|
| public class | CannotCreateException
Signals that |
| public class | CannotInvokeException
Thrown when method invocation using the reflection API has thrown an exception. |
| public class | CannotReflectException
Thrown by |
| public class | ClassMetaobject
A runtime class metaobject. |
| pack-priv class | |
| public class | Compiler
A bytecode translator for reflection. |
| public class | Loader
A class loader for reflection. |
| public class | Metaobject
A runtime metaobject. |
| public class | Reflection
The class implementing the behavioral reflection mechanism. |
| public class | Sample
A template used for defining a reflective class. |