!7 set flag AllPublic. p { ClassGen cg = new("User123", "java.lang.Object", null, Const.ACC_PUBLIC, new S[] { className(IF0) }); cg.addEmptyConstructor(Const.ACC_PUBLIC); // make code for get() method var m = new MethodMaker(cg, "get", O); // declare and create StringBuffer int buffer = m.newLocalVar(); m.newObject(StringBuffer.class).astore(buffer); // Append two strings for (string : ll("Hello ", "world")) { m.aload(buffer).stringConstant(string); m.il.append(m.factory.createAppend(org.apache.bcel.generic.Type.OBJECT)); } // call StringBuffer.toString() and return m.aload(buffer); m.invokeVirtual(StringBuffer.class, "toString", S); m.areturn().done(); // bake class JavaClass baked = cg.getJavaClass(); // print class overview print(baked); // print the methods for (method : baked.getMethods()) { print("\n" + method); print(method.getCode()); } byte[] bytes = baked.getBytes(); var cl = new InMemoryClassLoader(myClassLoader()); time "Defining class" { Class c = cast cl.defineAClass("User123", bytes); } print(c); IF0 f = newInstance(c); print(f); assertEqualsVerbose("Hello world", f!); }