- ClassGen cg = new ClassGen("Test1","java.lang.Object",ACC_PUBLIC|ACC_SUPER);
-
- FieldGen fg = cg.addField("message",Type.STRING,ACC_PRIVATE|ACC_STATIC);
- fg.setConstantValue("Hello, World");
-
- MethodGen mg = cg.addMethod("main",Type.VOID,new Type[]{Type.arrayType(Type.STRING)},ACC_STATIC|ACC_PUBLIC);
- mg.add(LDC,10);
- mg.add(ISTORE_0);
-
- int top = mg.size();
- mg.add(GETSTATIC,new FieldRef("java.lang.System","out",new Type.Object("java.io.PrintStream")));
- mg.add(NEW,Type.STRINGBUFFER);
- mg.add(DUP);
- mg.add(INVOKESPECIAL,new MethodRef(Type.STRINGBUFFER,"<init>",Type.VOID,Type.NO_ARGS));
- mg.add(GETSTATIC,new FieldRef("Test1","message",Type.STRING));
- mg.add(INVOKEVIRTUAL,new MethodRef(Type.STRINGBUFFER,"append",Type.STRINGBUFFER,new Type[]{Type.STRING}));
- mg.add(LDC," - ");
- mg.add(INVOKEVIRTUAL,new MethodRef(Type.STRINGBUFFER,"append",Type.STRINGBUFFER,new Type[]{Type.STRING}));
- mg.add(ILOAD_0);
- mg.add(INVOKEVIRTUAL,new MethodRef(Type.STRINGBUFFER,"append",Type.STRINGBUFFER,new Type[]{Type.INT}));
-
- mg.add(ILOAD_0);
- mg.add(ICONST_1);
- mg.add(IAND);
- int b1 = mg.add(IFNE);
- mg.add(LDC,'!');
- mg.add(INVOKEVIRTUAL,new MethodRef(Type.STRINGBUFFER,"append",Type.STRINGBUFFER,new Type[]{Type.CHAR}));
- mg.setArg(b1,mg.size());
-
- mg.add(INVOKEVIRTUAL,new MethodRef(Type.STRINGBUFFER,"toString",Type.STRING,Type.NO_ARGS));
- mg.add(INVOKEVIRTUAL,new MethodRef("java.io.PrintStream","println",Type.VOID,new Type[]{Type.STRING}));
-
- mg.add(IINC,new MethodGen.Pair(0,-1));