ClassGen addMethodToReturnField(ClassGen cg, String methodName, FieldInstruction fi, ConstantPoolGen cpg, short type) { return addMethodToReturnField(cg, methodName, fi.getFieldType(cpg), fi.getClassName(cpg), fi.getFieldName(cpg), fi.getFieldType(cpg), type); } ClassGen addMethodToReturnField(ClassGen cg, String methodname, Type methodtype, String classname, String fieldname, Type fieldtype, short type) { ConstantPoolGen cpg = cg.getConstantPool(); InstructionList il = new InstructionList(); InstructionFactory factory = new InstructionFactory(cg, cpg); MethodGen mg = new MethodGen(Constants.ACC_PUBLIC, methodtype, Type.NO_ARGS, new String[]{}, methodname, cg.getClassName(), il, cpg); il.append(new ALOAD(0)); il.append(factory.createFieldAccess(classname, fieldname, fieldtype, type)); il.append(InstructionFactory.createReturn(fieldtype)); mg.setMaxLocals(); mg.setMaxStack(); cg.addMethod(mg.getMethod()); System.out.println("Inject " + methodname + " into " + cg.getClassName()); return cg; }