1234567891011121314151617181920212223242526272829303132 |
- package sample.reflect;
-
- import javassist.tools.reflect.Loader;
-
- /*
- The "verbose metaobject" example (JDK 1.2 or later only).
-
- Since this program registers class Person as a reflective class
- (in a more realistic demonstration, what classes are reflective
- would be specified by some configuration file), the class loader
- modifies Person.class when loading into the JVM so that the class
- Person is changed into a reflective class and a Person object is
- controlled by a VerboseMetaobj.
-
- To run,
-
- % java javassist.tools.reflect.Loader sample.reflect.Main Joe
-
- Compare this result with that of the regular execution without reflection:
-
- % java sample.reflect.Person Joe
- */
- public class Main {
- public static void main(String[] args) throws Throwable {
- Loader cl = (Loader)Main.class.getClassLoader();
- cl.makeReflective("sample.reflect.Person",
- "sample.reflect.VerboseMetaobj",
- "javassist.tools.reflect.ClassMetaobject");
-
- cl.run("sample.reflect.Person", args);
- }
- }
|