Browse Source

updated the tutorial and some javadoc comments

tags/rel_3_20_0_ga
chibash 9 years ago
parent
commit
e724bc8af9
4 changed files with 51 additions and 3 deletions
  1. 5
    0
      src/main/javassist/CtClass.java
  2. 1
    1
      tutorial/tutorial.html
  3. 1
    1
      tutorial/tutorial2.html
  4. 44
    1
      tutorial/tutorial3.html

+ 5
- 0
src/main/javassist/CtClass.java View File

* and the methods so that the type variable <code>T</code> can be * and the methods so that the type variable <code>T</code> can be
* accessible through reflection. * accessible through reflection.
* *
* <p><code>MethodSignature</code> is a utility class. You can directly
* pass the signature string to the <code>setGenericSignature</code> method.
* For the specification of the signatures, see Section 4.7.9.1 <i>Signatures</i>
* of The Java Virtual Machine Specification (Java SE 8).
*
* @param sig a generic signature. * @param sig a generic signature.
* @see javassist.bytecode.SignatureAttribute.ClassSignature#encode() * @see javassist.bytecode.SignatureAttribute.ClassSignature#encode()
* @see javassist.bytecode.SignatureAttribute.MethodSignature#encode() * @see javassist.bytecode.SignatureAttribute.MethodSignature#encode()

+ 1
- 1
tutorial/tutorial.html View File



<hr> <hr>
Java(TM) is a trademark of Sun Microsystems, Inc.<br> Java(TM) is a trademark of Sun Microsystems, Inc.<br>
Copyright (C) 2000-2014 by Shigeru Chiba, All rights reserved.
Copyright (C) 2000-2015 by Shigeru Chiba, All rights reserved.
</body> </body>
</html> </html>

+ 1
- 1
tutorial/tutorial2.html View File



<hr> <hr>
Java(TM) is a trademark of Sun Microsystems, Inc.<br> Java(TM) is a trademark of Sun Microsystems, Inc.<br>
Copyright (C) 2000-2014 by Shigeru Chiba, All rights reserved.
Copyright (C) 2000-2015 by Shigeru Chiba, All rights reserved.
</body> </body>
</html> </html>

+ 44
- 1
tutorial/tutorial3.html View File

writes the contents of the class file to a given writes the contents of the class file to a given
<code>DataOutputStream</code>. <code>DataOutputStream</code>.


<p>You can create a new class file from scratch. For example,
<blockquote><pre>
ClassFile cf = new ClassFile(false, "test.Foo", null);
cf.setInterfaces(new String[] { "java.lang.Cloneable" });
FieldInfo f = new FieldInfo(cf.getConstPool(), "width", "I");
f.setAccessFlags(AccessFlag.PUBLIC);
cf.addField(f);

cf.write(new DataOutputStream(new FileOutputStream("Foo.class")));
</pre></blockquote>

<p>this code generates a class file <code>Foo.class</code> that contains
the implementation of the following class:

<blockquote><pre>
package test;
class Foo implements Cloneable {
public int width;
}
</pre></blockquote>

<p><br> <p><br>


<a name="member"> <a name="member">
To recompute the maximum stack depth of a method body, To recompute the maximum stack depth of a method body,
call <code>computeMaxStack()</code> in <code>CodeAttribute</code>. call <code>computeMaxStack()</code> in <code>CodeAttribute</code>.


<p><code>Bytecode</code> can be used to construct a method.
For example,

<blockquote><pre>
ClassFile cf = ...
Bytecode code = new Bytecode(cf.getConstPool());
code.addAload(0);
code.addInvokespecial("java/lang/Object", MethodInfo.nameInit, "()V");
code.addReturn(null);
code.setMaxLocals(1);

MethodInfo minfo = new MethodInfo(cf.getConstPool(), MethodInfo.nameInit, "()V");
minfo.setCodeAttribute(code.toCodeAttribute());
cf.addMethod(minfo);
</pre></blockquote>

<p>this code makes the default constructor and adds it to the class specified
by <code>cf</code>. The <code>Bytecode</code> object is first converted into
a <code>CodeAttribute</code> object and then added to the method specified
by <code>minfo</code>. The method is finally added to a class file <code>cf</code>.

<p><br> <p><br>


<a name="annotation"> <a name="annotation">


<hr> <hr>
Java(TM) is a trademark of Sun Microsystems, Inc.<br> Java(TM) is a trademark of Sun Microsystems, Inc.<br>
Copyright (C) 2000-2014 by Shigeru Chiba, All rights reserved.
Copyright (C) 2000-2015 by Shigeru Chiba, All rights reserved.
</body> </body>
</html> </html>

Loading…
Cancel
Save