Package org.nutz.repo.org.objectweb.asm

Examples of org.nutz.repo.org.objectweb.asm.ClassWriter.visitMethod()


                 null,
                 "org/nutz/lang/reflect/AbstractFastClass",
                 null);
        // 添加默认构造方法
        {
            MethodVisitor mv = cw.visitMethod(ACC_PUBLIC,
                                              "<init>",
                                              "()V",
                                              null,
                                              null);
            mv.visitCode();
View Full Code Here


                          "Ljava/lang/Class<*>;",
                          null).visitEnd();
        }
        // 实现默认字段的getter
        {
            MethodVisitor mv = cw.visitMethod(ACC_PROTECTED,
                                              "getMethods",
                                              "()[Ljava/lang/reflect/Method;",
                                              null,
                                              null);
            mv.visitCode();
View Full Code Here

                              "[Ljava/lang/reflect/Method;");
            mv.visitInsn(ARETURN);
            mv.visitMaxs(1, 1);
            mv.visitEnd();
            // -----------------------------------------------------------------------------------------------------
            mv = cw.visitMethod(ACC_PROTECTED,
                                "getConstructors",
                                "()[Ljava/lang/reflect/Constructor;",
                                "()[Ljava/lang/reflect/Constructor<*>;",
                                null);
            mv.visitCode();
View Full Code Here

                              "[Ljava/lang/reflect/Constructor;");
            mv.visitInsn(ARETURN);
            mv.visitMaxs(1, 1);
            mv.visitEnd();
            // -----------------------------------------------------------------------------------------------------
            mv = cw.visitMethod(ACC_PROTECTED,
                                "getSrcClass",
                                "()Ljava/lang/Class;",
                                "()Ljava/lang/Class<*>;",
                                null);
            mv.visitCode();
View Full Code Here

                else if (Modifier.isStatic(methods[i].getModifiers()))
                    invokeOps[i] = INVOKESTATIC;
                else
                    invokeOps[i] = INVOKEVIRTUAL;
            }
            FastClassAdpter.createInokeMethod(cw.visitMethod(ACC_PUBLIC
                                                                     + ACC_VARARGS,
                                                             "_invoke",
                                                             "(Ljava/lang/Object;I[Ljava/lang/Object;)Ljava/lang/Object;",
                                                             null,
                                                             null),
View Full Code Here

        }
        // 添加_born方法
        Constructor<?>[] constructors = classZ.getConstructors();
        Arrays.sort(constructors, new ConstructorComparator());
        if (constructors.length > 0) {
            FastClassAdpter.createInokeConstructor(cw.visitMethod(ACC_PROTECTED
                                                                          + ACC_VARARGS,
                                                                  "_born",
                                                                  "(I[Ljava/lang/Object;)Ljava/lang/Object;",
                                                                  null,
                                                                  null),
View Full Code Here

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.