From d59bfd284a5a2f7dcb380ccb358621a5bd4b1b6b Mon Sep 17 00:00:00 2001 From: chiba Date: Tue, 6 Sep 2005 15:09:18 +0000 Subject: updated javadoc comments git-svn-id: http://anonsvn.jboss.org/repos/javassist/trunk@204 30ef5769-5b8d-40dd-aea6-55b5d6557bb3 --- tutorial/tutorial.html | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) (limited to 'tutorial/tutorial.html') diff --git a/tutorial/tutorial.html b/tutorial/tutorial.html index 4670424e..29c56a68 100644 --- a/tutorial/tutorial.html +++ b/tutorial/tutorial.html @@ -114,21 +114,27 @@ Member methods in an interface can be created with abstractMethod() in CtNewMethod. Note that an interface method is an abstract method. - -

Frozen classes

+ +

Frozen classes

If a CtClass object is converted into a class file by writeFile(), toClass(), or toBytecode(), Javassist freezes that CtClass object. Further modifications of that CtClass object are -not permitted. +not permitted. This is for warning the developers when they attempt +to modify a class file that has been already loaded since the JVM does +not allow reloading a class.

When Javassist freezes a CtClass object, it also prunes the data structure contained in that object. To reduce memory -consumption, Javassist discards some part of data structure, for -example, the data of method bodies. Thus, after a +consumption, Javassist discards unnecessary attributes +(attribute_info structures) in that object. +For example, Code_attribute structures (method bodies) +are discarded. +Thus, after a CtClass object is pruned, the bytecode of a method is not -accessible although method names and signatures are accessible. +accessible although method names, signatures, and annotations +are still accessible.

To disallow pruning a CtClass, stopPruning() must be called in advance: @@ -283,7 +289,8 @@ program execution. This specification of ClassPool may cause huge memory consumption if the number of CtClass objects becomes amazingly large (this rarely happens since Javassist tries to reduce -memory consumption in various ways). To avoid this problem, you +memory consumption in various ways). +To avoid this problem, you can explicitly remove an unnecessary CtClass object from the ClassPool. If you call detach() on a CtClass object, then that CtClass object is -- cgit v1.2.3