Weldon,
I confused this$ and class$ fields in your example.
Here is another example where class$ method is generated and used:
public class Test2 {
public static void main(String[] args) {
Class cls = Test2.class;
}
}
and javap output is:
public class Test2 extends java.lang.Object{
static java.lang.Class class$Test2;
public Test2();
Code:
0: aload_0
1: invokespecial #6; //Method java/lang/Object."<init>":()V
4: return
public static void main(java.lang.String[]);
Code:
0: getstatic #7; //Field class$Test2:Ljava/lang/Class;
3: ifnonnull 18
6: ldc #8; //String Test2
8: invokestatic #9; //Method
class$:(Ljava/lang/String;)Ljava/lang/Class;
11: dup
12: putstatic #7; //Field class$Test2:Ljava/lang/Class;
15: goto 21
18: getstatic #7; //Field class$Test2:Ljava/lang/Class;
21: astore_1
22: return
static java.lang.Class class$(java.lang.String);
Code:
0: aload_0
1: invokestatic #1; //Method
java/lang/Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
4: areturn
5: astore_1
6: new #3; //class NoClassDefFoundError
9: dup
10: aload_1
11: invokevirtual #4; //Method
java/lang/ClassNotFoundException.getMessage:()Ljava/lang/String;
14: invokespecial #5; //Method
java/lang/NoClassDefFoundError."<init>":(Ljava/lang/String;)V
17: athrow
Exception table:
from to target type
0 4 5 Class java/lang/ClassNotFoundException
}
On 5/22/06, Mikhail Fursov <[EMAIL PROTECTED]> wrote:
--
Mikhail Fursov
Intel Middleware Products Division