Lines Matching full:code

32 <p><code>CtClass</code> provides methods for introspection.  The
34 the Java reflection API. <code>CtClass</code> provides
35 <code>getName()</code>, <code>getSuperclass()</code>,
36 <code>getMethods()</code>, and so on.
37 <code>CtClass</code> also provides methods for modifying a class
42 Methods are represented by <code>CtMethod</code> objects.
43 <code>CtMethod</code> provides several methods for modifying
46 the same <code>CtMethod</code> object
49 A <code>CtMethod</code> object corresponds to every method declaration.
52 For example, if class <code>Point</code> declares method <code>move()</code>
53 and a subclass <code>ColorPoint</code> of <code>Point</code> does
54 not override <code>move()</code>, the two <code>move()</code> methods
55 declared in <code>Point</code> and inherited in <code>ColorPoint</code>
56 are represented by the identical <code>CtMethod</code> object.
58 <code>CtMethod</code> object is modified, the modification is
60 If you want to modify only the <code>move()</code> method in
61 <code>ColorPoint</code>, you first have to add to <code>ColorPoint</code>
62 a copy of the <code>CtMethod</code> object representing <code>move()</code>
63 in <code>Point</code>. A copy of the the <code>CtMethod</code> object
64 can be obtained by <code>CtNewMethod.copy()</code>.
73 <code>setName()</code>
74 and <code>setModifiers()</code> declared in <code>CtMethod</code>.
79 same class. For example, if you want to add an extra <code>int</code>
80 parameter <code>newZ</code> to a method:
84 <p>in a <code>Point</code> class, then you should add the following
85 method to the <code>Point</code> class:
97 class file. For example, <code>getClassFile()</code> in
98 <code>CtClass</code> returns a <code>ClassFile</code> object
99 representing a raw class file. <code>getMethodInfo()</code> in
100 <code>CtMethod</code> returns a <code>MethodInfo</code> object
101 representing a <code>method_info</code> structure included in a class
105 <a href="tutorial3.html#intro"><code>javassist.bytecode</code> package</a>.
108 <code>javassist.runtime</code> package for runtime support
109 only if some special identifiers starting with <code>$</code>
112 do not need the <code>javassist.runtime</code> package or any
115 of the <code>javassist.runtime</code> package.
122 <p><code>CtMethod</code> and <code>CtConstructor</code> provide
123 methods <code>insertBefore()</code>, <code>insertAfter()</code>, and
124 <code>addCatch()</code>. They are used for inserting a code fragment
125 into the body of an existing method. The users can specify those code
133 Inserting a code fragment at the position specified by a line number
136 <code>insertAt()</code> in <code>CtMethod</code> and
137 <code>CtConstructor</code> takes source text and a line number in the source
139 It compiles the source text and inserts the compiled code at the line number.
141 <p>The methods <code>insertBefore()</code>, <code>insertAfter()</code>,
142 <code>addCatch()</code>, and <code>insertAt()</code>
143 receive a <code>String</code> object representing
145 <code>if</code> and <code>while</code> or an expression ending with
146 a semi colon (<code>;</code>). A block is a set of
147 statements surrounded with braces <code>{}</code>.
161 variables <code>$0</code>, <code>$1</code>, <code>$2</code>, ... described
165 However, <code>insertAt()</code> allows the statement and the block
180 <p>The <code>String</code> object passed to the methods
181 <code>insertBefore()</code>, <code>insertAfter()</code>,
182 <code>addCatch()</code>, and <code>insertAt()</code> are compiled by
185 several identifiers starting with <code>$</code>
190 <td><code>$0</code>, <code>$1</code>, <code>$2</code>, ... &nbsp &nbsp</td>
191 <td><code>this</code> and actual parameters</td>
195 <td><code>$args</code></td>
197 The type of <code>$args</code> is <code>Object[]</code>.
202 <td><code>$$</code></td>
204 For example, <code>m($$)</code> is equivalent to
205 <code>m($1,$2,</code>...<code>)</code></td>
211 <td><code>$cflow(</code>...<code>)</code></td>
212 <td><code>cflow</code> variable</td>
216 <td><code>$r</code></td>
221 <td><code>$w</code></td>
226 <td><code>$_</code></td>
231 <td><code>$sig</code></td>
232 <td>An array of <code>java.lang.Class</code> objects representing
238 <td><code>$type</code></td>
239 <td>A <code>java.lang.Class</code> object representing
244 <td><code>$class</code></td>
245 <td>A <code>java.lang.Class</code> object representing
256 <code>$1</code>, <code>$2</code>, ... instead of
258 <code>$1</code> represents the
259 first parameter, <code>$2</code> represents the second parameter, and
262 <code>$0</code> is
263 equivalent to <code>this</code>. If the method is static,
264 <code>$0</code> is not available.
267 <code>Point</code>:
275 <p>To print the values of <code>dx</code> and <code>dy</code>
276 whenever the method <code>move()</code> is called, execute this
286 <p>Note that the source text passed to <code>insertBefore()</code> is
287 surrounded with braces <code>{}</code>.
288 <code>insertBefore()</code> accepts only a single statement or a block
291 <p>The definition of the class <code>Point</code> after the
303 <p><code>$1</code> and <code>$2</code> are replaced with
304 <code>dx</code> and <code>dy</code>, respectively.
306 <p><code>$1</code>, <code>$2</code>, <code>$3</code> ... are
314 <p>The variable <code>$args</code> represents an array of all the
316 <code>Object</code>. If a parameter type is a primitive type such as
317 <code>int</code>, then the parameter value is converted into a wrapper
318 object such as <code>java.lang.Integer</code> to store in
319 <code>$args</code>. Thus, <code>$args[0]</code> is equivalent to
320 <code>$1</code> unless the type of the first parameter is a primitive
321 type. Note that <code>$args[0]</code> is not equivalent to
322 <code>$0</code>; <code>$0</code> represents <code>this</code>.
324 <p>If an array of <code>Object</code> is assigned to
325 <code>$args</code>, then each element of that array is
333 <p>The variable <code>$$</code> is abbreviation of a list of
336 to method <code>move()</code> is three, then
344 <p>If <code>move()</code> does not take any parameters,
345 then <code>move($$)</code> is
346 equivalent to <code>move()</code>.
348 <p><code>$$</code> can be used with another method.
357 <p>Note that <code>$$</code> enables generic notation of method call
359 It is typically used with <code>$proceed</code> shown later.
363 <p><code>$cflow</code> means "control flow".
368 <code>CtMethod</code> object <code>cm</code>:
377 <p>To use <code>$cflow</code>, first declare that <code>$cflow</code>
378 is used for monitoring calls to the method <code>fact()</code>:
383 <p>The parameter to <code>useCflow()</code> is the identifier of the
384 declared <code>$cflow</code> variable. Any valid Java name can be
386 <code>.</code> (dot), for example, <code>"my.Test.fact"</code>
389 <p>Then, <code>$cflow(fact)</code> represents the depth of the
390 recursive calls to the method specified by <code>cm</code>. The value
391 of <code>$cflow(fact)</code> is 0 (zero) when the method is
400 <p>translates the method <code>fact()</code> so that it shows the
401 parameter. Since the value of <code>$cflow(fact)</code> is checked,
402 the method <code>fact()</code> does not show the parameter if it is
403 recursively called within <code>fact()</code>.
405 <p>The value of <code>$cflow</code> is the number of stack frames
406 associated with the specified method <code>cm</code>
408 stack frame for the current thread. <code>$cflow</code> is also
410 <code>cm</code>.
414 <p><code>$r</code> represents the result type (return type) of the method.
421 <p>If the result type is a primitive type, then <code>($r)</code>
423 expression is a primitive type, <code>($r)</code> works as a normal
426 <code>($r)</code> converts from the wrapper type to the result type.
427 For example, if the result type is <code>int</code>, then
428 <code>($r)</code> converts from <code>java.lang.Integer</code> to
429 <code>int</code>.
431 <p>If the result type is <code>void</code>, then
432 <code>($r)</code> does not convert a type; it does nothing.
433 However, if the operand is a call to a <code>void</code> method,
434 then <code>($r)</code> results in <code>null</code>. For example,
435 if the result type is <code>void</code> and
436 <code>foo()</code> is a <code>void</code> method, then
442 <p>The cast operator <code>($r)</code> is also useful in a
443 <code>return</code> statement. Even if the result type is
444 <code>void</code>, the following <code>return</code> statement is valid:
448 <p>Here, <code>result</code> is some local variable.
449 Since <code>($r)</code> is specified, the resulting value is
451 This <code>return</code> statement is regarded as the equivalent
452 of the <code>return</code> statement without a resulting value:
458 <p><code>$w</code> represents a wrapper type.
460 <code>($w)</code> converts from a primitive type to the corresponding
463 The following code is an example:
468 following <code>($w)</code>. If the type of the expression is
469 <code>double</code>, then the wrapper type is <code>java.lang.Double</code>.
471 <p>If the type of the expression following <code>($w)</code> is not
472 a primitive type, then <code>($w)</code> does nothing.
476 <p><code>insertAfter()</code> in <code>CtMethod</code> and
477 <code>CtConstructor</code> inserts the
478 compiled code at the end of the method. In the statement given to
479 <code>insertAfter()</code>, not only the variables shown above such as
480 <code>$0</code>, <code>$1</code>, ... but also <code>$_</code> is
483 <p>The variable <code>$_</code> represents the resulting value of the
486 return type) of the method. If the result type is <code>void</code>,
487 then the type of <code>$_</code> is <code>Object</code> and the value
488 of <code>$_</code> is <code>null</code>.
490 <p>Although the compiled code inserted by <code>insertAfter()</code>
494 <code>asFinally</code> to <code>insertAfter()</code> must be
495 <code>true</code>.
497 <p>If an exception is thrown, the compiled code inserted by
498 <code>insertAfter()</code> is executed as a <code>finally</code>
499 clause. The value of <code>$_</code> is <code>0</code> or
500 <code>null</code> in the compiled code. After the execution of the
501 compiled code terminates, the exception originally thrown is re-thrown
502 to the caller. Note that the value of <code>$_</code> is never thrown
507 <p>The value of <code>$sig</code> is an array of
508 <code>java.lang.Class</code> objects that represent the formal
513 <p>The value of <code>$type</code> is an <code>java.lang.Class</code>
515 variable refers to <code>Void.class</code> if this is a constructor.
519 <p>The value of <code>$class</code> is an <code>java.lang.Class</code>
521 This represents the type of <code>$0</code>.
525 <p><code>addCatch()</code> inserts a code fragment into a method body
526 so that the code fragment is executed when the method body throws
528 text representing the inserted code fragment, the exception value
529 is referred to with the special variable <code>$e</code>.
539 <p>translates the method body represented by <code>m</code> into
552 <p>Note that the inserted code fragment must end with a
553 <code>throw</code> or <code>return</code> statement.
560 <p><code>CtMethod</code> and <code>CtConstructor</code> provide
561 <code>setBody()</code> for substituting a whole
564 text is <code>null</code>, the substituted body includes only a
565 <code>return</code> statement, which returns zero or null unless the
566 result type is <code>void</code>.
568 <p>In the source text given to <code>setBody()</code>, the identifiers
569 starting with <code>$</code> have special meaning
573 <td><code>$0</code>, <code>$1</code>, <code>$2</code>, ... &nbsp &nbsp</td>
574 <td><code>this</code> and actual parameters</td>
578 <td><code>$args</code></td>
580 The type of <code>$args</code> is <code>Object[]</code>.
585 <td><code>$$</code></td>
590 <td><code>$cflow(</code>...<code>)</code></td>
591 <td><code>cflow</code> variable</td>
595 <td><code>$r</code></td>
600 <td><code>$w</code></td>
605 <td><code>$sig</code></td>
606 <td>An array of <code>java.lang.Class</code> objects representing
612 <td><code>$type</code></td>
613 <td>A <code>java.lang.Class</code> object representing
618 <td><code>$class</code></td>
619 <td rowspan=2>A <code>java.lang.Class</code> object representing
629 Note that <code>$_</code> is not available.
634 <code>javassist.expr.ExprEditor</code> is a class
636 The users can define a subclass of <code>ExprEditor</code>
639 <p>To run an <code>ExprEditor</code> object, the users must
640 call <code>instrument()</code> in <code>CtMethod</code> or
641 <code>CtClass</code>.
659 <p>searches the method body represented by <code>cm</code> and
660 replaces all calls to <code>move()</code> in class <code>Point</code>
666 <p>so that the first parameter to <code>move()</code> is always 0.
667 Note that the substituted code is not an expression but
670 <p>The method <code>instrument()</code> searches a method body.
672 creation, then it calls <code>edit()</code> on the given
673 <code>ExprEditor</code> object. The parameter to <code>edit()</code>
674 is an object representing the found expression. The <code>edit()</code>
677 <p>Calling <code>replace()</code> on the parameter to <code>edit()</code>
679 block is an empty block, that is, if <code>replace("{}")</code>
684 <code>replace()</code>:
704 also available in the source text passed to <code>replace()</code>
705 if the method searched by <code>instrument()</code> was compiled
711 <p>A <code>MethodCall</code> object represents a method call.
712 The method <code>replace()</code> in
713 <code>MethodCall</code> substitutes a statement or
716 block, in which the identifiers starting with <code>$</code>
718 <code>insertBefore()</code>.
722 <td><code>$0</code></td>
725 This is not equivalent to <code>this</code>, which represents
726 the caller-side <code>this</code> object.<br>
727 <code>$0</code> is <code>null</code> if the method is static.
736 <td><code>$1</code>, <code>$2</code>, ... &nbsp &nbsp</td>
743 <code>$_</code></td>
747 <tr><td><code>$r</code></td>
751 <tr><td><code>$class</code> &nbsp &nbsp</td>
752 <td>A <code>java.lang.Class</code> object representing
757 <tr><td><code>$sig</code> &nbsp &nbsp</td>
758 <td>An array of <code>java.lang.Class</code> objects representing
762 <tr><td><code>$type</code> &nbsp &nbsp</td>
763 <td>A <code>java.lang.Class</code> object representing
767 <tr><td><code>$proceed</code> &nbsp &nbsp</td>
776 <code>MethodCall</code> object.
778 <p>The other identifiers such as <code>$w</code>,
779 <code>$args</code> and <code>$$</code>
782 <p>Unless the result type of the method call is <code>void</code>,
784 <code>$_</code> in the source text and the type of <code>$_</code>
786 If the result type is <code>void</code>, the type of <code>$_</code>
787 is <code>Object</code> and the value assigned to <code>$_</code>
790 <p><code>$proceed</code> is not a <code>String</code> value but special
792 <code>( )</code>.
796 <p>A <code>ConstructorCall</code> object represents a constructor call
797 such as <code>this()</code> and <code>super</code> included in a constructor
799 The method <code>replace()</code> in
800 <code>ConstructorCall</code> substitutes a statement or
803 block, in which the identifiers starting with <code>$</code>
805 <code>insertBefore()</code>.
809 <td><code>$0</code></td>
812 This is equivalent to <code>this</code>.
817 <td><code>$1</code>, <code>$2</code>, ... &nbsp &nbsp</td>
823 <tr><td><code>$class</code> &nbsp &nbsp</td>
824 <td>A <code>java.lang.Class</code> object representing
829 <tr><td><code>$sig</code> &nbsp &nbsp</td>
830 <td>An array of <code>java.lang.Class</code> objects representing
834 <tr><td><code>$proceed</code> &nbsp &nbsp</td>
843 <code>ConstructorCall</code> object.
845 <p>The other identifiers such as <code>$w</code>,
846 <code>$args</code> and <code>$$</code>
852 normally a call to <code>$proceed()</code>.
854 <p><code>$proceed</code> is not a <code>String</code> value but special
856 <code>( )</code>.
860 <p>A <code>FieldAccess</code> object represents field access.
861 The method <code>edit()</code> in <code>ExprEditor</code>
863 The method <code>replace()</code> in
864 <code>FieldAccess</code> receives
869 In the source text, the identifiers starting with <code>$</code>
874 <td><code>$0</code></td>
877 This is not equivalent to <code>this</code>.<br>
878 <code>this</code> represents the object that the method including the
880 <code>$0</code> is <code>null</code> if the field is static.
889 <td><code>$1</code></td>
893 <br>Otherwise, <code>$1</code> is not available.
900 <td><code>$_</code></td>
904 <br>Otherwise, the value stored in <code>$_</code> is discarded.
910 <td><code>$r</code></td>
913 <br>Otherwise, <code>$r</code> is <code>void</code>.
919 <tr><td><code>$class</code> &nbsp &nbsp</td>
920 <td>A <code>java.lang.Class</code> object representing
924 <tr><td><code>$type</code></td>
925 <td>A <code>java.lang.Class</code> object representing
929 <tr><td><code>$proceed</code> &nbsp &nbsp</td>
938 <p>The other identifiers such as <code>$w</code>,
939 <code>$args</code> and <code>$$</code>
943 <code>$_</code> in the source text. The type of <code>$_</code>
948 <p>A <code>NewExpr</code> object represents object creation
949 with the <code>new</code> operator (not including array creation).
950 The method <code>edit()</code> in <code>ExprEditor</code>
952 The method <code>replace()</code> in
953 <code>NewExpr</code> receives
958 In the source text, the identifiers starting with <code>$</code>
964 <td><code>$0</code></td>
966 <code>null</code>.
971 <td><code>$1</code>, <code>$2</code>, ... &nbsp &nbsp</td>
978 <td><code>$_</code></td>
988 <td><code>$r</code></td>
994 <tr><td><code>$sig</code> &nbsp &nbsp</td>
995 <td>An array of <code>java.lang.Class</code> objects representing
999 <tr><td><code>$type</code> &nbsp &nbsp</td>
1000 <td>A <code>java.lang.Class</code> object representing
1004 <tr><td><code>$proceed</code> &nbsp &nbsp</td>
1013 <p>The other identifiers such as <code>$w</code>,
1014 <code>$args</code> and <code>$$</code>
1019 <p>A <code>NewArray</code> object represents array creation
1020 with the <code>new</code> operator.
1021 The method <code>edit()</code> in <code>ExprEditor</code>
1023 The method <code>replace()</code> in
1024 <code>NewArray</code> receives
1029 In the source text, the identifiers starting with <code>$</code>
1035 <td><code>$0</code></td>
1037 <code>null</code>.
1042 <td><code>$1</code>, <code>$2</code>, ... &nbsp &nbsp</td>
1049 <td><code>$_</code></td>
1059 <td><code>$r</code></td>
1065 <tr><td><code>$type</code> &nbsp &nbsp</td>
1066 <td>A <code>java.lang.Class</code> object representing
1070 <tr><td><code>$proceed</code> &nbsp &nbsp</td>
1079 <p>The other identifiers such as <code>$w</code>,
1080 <code>$args</code> and <code>$$</code>
1101 <p>A <code>Instanceof</code> object represents an <code>instanceof</code>
1103 The method <code>edit()</code> in <code>ExprEditor</code>
1105 The method <code>replace()</code> in
1106 <code>Instanceof</code> receives
1111 In the source text, the identifiers starting with <code>$</code>
1117 <td><code>$0</code></td>
1119 <code>null</code>.
1124 <td><code>$1</code></td>
1127 <code>instanceof</code> operator.
1132 <td><code>$_</code></td>
1135 The type of <code>$_</code> is <code>boolean</code>.
1140 <td><code>$r</code></td>
1142 The type on the right hand side of the <code>instanceof</code> operator.
1146 <tr><td><code>$type</code></td>
1147 <td>A <code>java.lang.Class</code> object representing
1148 the type on the right hand side of the <code>instanceof</code> operator.
1152 <tr><td><code>$proceed</code> &nbsp &nbsp</td>
1154 <code>instanceof</code> expression.
1155 <br>It takes one parameter (the type is <code>java.lang.Object</code>)
1159 <br>the original <code>instanceof</code> operator.
1171 <p>The other identifiers such as <code>$w</code>,
1172 <code>$args</code> and <code>$$</code>
1177 <p>A <code>Cast</code> object represents an expression for
1179 The method <code>edit()</code> in <code>ExprEditor</code>
1181 The method <code>replace()</code> in
1182 <code>Cast</code> receives
1187 In the source text, the identifiers starting with <code>$</code>
1193 <td><code>$0</code></td>
1195 <code>null</code>.
1200 <td><code>$1</code></td>
1207 <td><code>$_</code></td>
1210 The type of <code>$_</code> is the same as the type
1212 by <code>( )</code>.
1219 <td><code>$r</code></td>
1221 by <code>( )</code>.
1225 <tr><td><code>$type</code></td>
1226 <td>A <code>java.lang.Class</code> object representing
1227 the same type as <code>$r</code>.
1231 <tr><td><code>$proceed</code> &nbsp &nbsp</td>
1234 <br>It takes one parameter of the type <code>java.lang.Object</code>
1248 <p>The other identifiers such as <code>$w</code>,
1249 <code>$args</code> and <code>$$</code>
1254 <p>A <code>Handler</code> object represents a <code>catch</code>
1255 clause of <code>try-catch</code> statement.
1256 The method <code>edit()</code> in <code>ExprEditor</code>
1257 receives this object if a <code>catch</code> is found.
1258 The method <code>insertBefore()</code> in
1259 <code>Handler</code> compiles the received
1260 source text and inserts it at the beginning of the <code>catch</code> clause.
1263 In the source text, the identifiers starting with <code>$</code>
1269 <td><code>$1</code></td>
1271 The exception object caught by the <code>catch</code> clause.
1276 <td><code>$r</code></td>
1277 <td>the type of the exception caught by the <code>catch</code> clause.
1283 <td><code>$w</code></td>
1288 <tr><td><code>$type</code> &nbsp &nbsp</td>
1290 A <code>java.lang.Class</code> object representing
1291 <br>the type of the exception caught by the <code>catch</code> clause.
1300 <p>If a new exception object is assigned to <code>$1</code>,
1301 it is passed to the original <code>catch</code> clause as the caught
1312 from scratch. <code>CtNewMethod</code>
1313 and <code>CtNewConstructor</code> provide several factory methods,
1314 which are static methods for creating <code>CtMethod</code> or
1315 <code>CtConstructor</code> objects.
1316 Especially, <code>make()</code> creates
1317 a <code>CtMethod</code> or <code>CtConstructor</code> object
1330 <p>adds a public method <code>xmove()</code> to class <code>Point</code>.
1331 In this example, <code>x</code> is a <code>int</code> field in
1332 the class <code>Point</code>.
1334 <p>The source text passed to <code>make()</code> can include the
1335 identifiers starting with <code>$</code> except <code>$_</code>
1336 as in <code>setBody()</code>.
1338 <code>$proceed</code> if the target object and the target method name
1339 are also given to <code>make()</code>. For example,
1348 <p>this program creates a method <code>ymove()</code> defined below:
1354 <p>Note that <code>$proceed</code> has been replaced with
1355 <code>this.move</code>.
1371 non-abstract one after calling <code>setBody()</code>.
1380 <code>m()</code> and <code>n()</code> to a class represented
1381 by <code>cc</code>:
1397 class to a not-abstract class since <code>addMethod()</code> automatically
1410 <p>This program adds a field named <code>z</code> to class
1411 <code>Point</code>.
1422 <p>Now, the method <code>addField()</code> receives the second parameter,
1426 does not end with a semi colon (<code>;</code>).
1428 <p>Furthermore, the above code can be rewritten into the following
1429 simple code:
1439 <p>To remove a field or a method, call <code>removeField()</code>
1440 or <code>removeMethod()</code> in <code>CtClass</code>. A
1441 <code>CtConstructor</code> can be removed by <code>removeConstructor()</code>
1442 in <code>CtClass</code>.
1449 <p><code>CtClass</code>, <code>CtMethod</code>, <code>CtField</code>
1450 and <code>CtConstructor</code> provides a convenient method
1451 <code>getAnnotations()</code> for reading annotations.
1473 <code>getAnnotations()</code>.
1486 <p>This code snippet should print:
1493 Since the annoation of <code>Point</code> is only <code>@Author</code>,
1494 the length of the array <code>all</code> is one
1495 and <code>all[0]</code> is an <code>Author</code> object.
1497 by calling <code>name()</code> and <code>year()</code>
1498 on the <code>Author</code> object.
1500 <p>To use <code>getAnnotations()</code>, annotation types
1501 such as <code>Author</code> must be included in the current
1503 <code>ClassPool</code> object.</em> If the class file of an annotation
1515 <code>javassist.runtime</code> package (for details, please read
1517 <code>javassist.runtime</code> package is the only package that
1526 <p>All the class names in source code must be fully qualified
1528 However, the <code>java.lang</code> package is an
1530 resolve <code>Object</code> as
1531 well as <code>java.lang.Object</code>.
1534 class name, call <code>importPackage()</code> in <code>ClassPool</code>.
1546 to import the <code>java.awt</code> package.
1548 The compiler can recognize <code>Point</code>
1549 as <code>java.awt.Point</code>.
1551 <p>Note that <code>importPackage()</code> <em>does not</em> affect
1552 the <code>get()</code> method in <code>ClassPool</code>.
1554 The parameter to <code>get()</code>
1569 See the <code>javassist.bytecode.annotation</code> package
1570 (and also <code>getAnnotations()</code>
1571 in <code>CtClass</code> and <code>CtBehavior</code>).
1575 enclosed by braces <code>{</code> and <code>}</code>, are not
1580 It cannot compile source code including an anonymous-class declaration.
1583 <p><li>Labeled <code>continue</code> and <code>break</code> statements
1603 <p>If the compiled expression is <code>x.foo(new C())</code>, where
1604 <code>x</code> is an instance of X, the compiler may produce a call
1605 to <code>foo(A)</code> although the compiler can correctly compile
1606 <code>foo((B)new C())</code>.
1608 <p><li>The users are recommended to use <code>#</code> as the separator
1614 <p>calls a method <code>getName()</code> on
1615 the object indicated by the static field <code>intType</code>
1616 in <code>javassist.CtClass</code>. In Javassist, the users can