|
Javassist (Java programming assistant) is a Java library providing a means to manipulate the Java bytecode of an application.〔(【引用サイトリンク】url=http://www.jboss.org/javassist )〕 In this sense Javassist provides the support for structural reflection, i.e. the ability to change the implementation of a class at run time. Bytecode manipulation is performed at load-time through a provided class loader. Javassist enables Java programs to define a new class at runtime and to modify a class file when the JVM loads it. Unlike other similar bytecode editors, Javassist provides two levels of API: source level and bytecode level. Using the source-level API, programmers can edit a class file without knowledge of the specifications of the Java bytecode; the whole API is designed with only the vocabulary of the Java language. Programmers can even specify inserted bytecode in the form of Java source text; Javassist compiles it on the fly. On the other hand, the bytecode-level API allows the users to directly edit a class file as other editors. ==Uses== Javassist can be used for the following: * For specifying the bytecode using source code – can compile a fragment of source text online (e.g., just a single statement) * For aspect-oriented programming (AOP) – can introduce new methods into a class and insert before/after/around advice at both the caller and callee sides * For reflection at runtime – can use a metaobject that controls method calls on base-level objects * For remote method invocation – can call a method on a remote object running on a web server, an alternative to Java RMI that does not need a stub compiler such as rmic 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「Javassist」の詳細全文を読む スポンサード リンク
|