Runtime Behavioral Reflection.

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

  • Class
    Signals that ClassMetaobject.newInstance() fails.
    Thrown when method invocation using the reflection API has thrown an exception.
    Thrown by makeReflective() in Reflection when there is an attempt to reflect a class that is either an interface or a subclass of either ClassMetaobject or Metaobject.
    A runtime class metaobject.
    A bytecode translator for reflection.
    A class loader for reflection.
    An interface to access a metaobject and a class metaobject.
    A runtime metaobject.
    The class implementing the behavioral reflection mechanism.
    A template used for defining a reflective class.