Comment #2 on issue 20 by
peter.ve...@gmail.com: another possible and
No unfoirtunately I am not, having no time to devote to that.
If you look at the disassembly of a class file, for example:
public javax0.casuar.Node(java.lang.String);
flags: ACC_PUBLIC
Code:
stack=4, locals=3, args_size=2
0: aload_0
1: invokespecial #75 // Method
java/lang/Object."<init>":()V
4: aload_0
5: aconst_null
6: putfield #59 // Field file:Ljava/io/File;
9: aload_0
10: aconst_null
11: putfield #36 // Field
subdirs:[Ljava/io/File;
14: aload_0
15: aconst_null
16: putfield #42 // Field
children:[Ljavax0/casuar/Node;
19: aload_1
20: ifnonnull 32
23: ldc #76 // String user.home
25: invokestatic #78 // Method
java/lang/System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
28: astore_2
29: goto 34
32: aload_1
33: astore_2
34: aload_0
35: new #45 // class java/io/File
38: dup
39: aload_2
40: invokespecial #84 // Method
java/io/File."<init>":(Ljava/lang/String;)V
43: putfield #59 // Field file:Ljava/io/File;
46: new #85 // class
javax0/casuar/Node$SubdirCollector
49: dup
50: aload_0
51: dup
52: invokevirtual #87 // Method
java/lang/Object.getClass:()Ljava/lang/Class;
55: pop
56: aconst_null
57: invokespecial #91 // Method
javax0/casuar/Node$SubdirCollector."<init>":(Ljavax0/casuar/Node;Ljavax0/casuar/Node$SubdirCollector;)V
60: invokevirtual #94 // Method
javax0/casuar/Node$SubdirCollector.start:()V
63: return
You can see that the invocatio of the super() is explicitly coded into the
file as
0: aload_0
1: invokespecial #75 // Method
java/lang/Object."<init>":()V
If you create the JVM code using asm tools, like cglib does then you can
skip this.