public static String methodDeclaration()

in bytekit-core/src/main/java/com/alibaba/bytekit/utils/AsmUtils.java [404:433]


    public static String methodDeclaration(MethodInsnNode methodInsnNode) {
        StringBuilder sb = new StringBuilder(128);

        int opcode = methodInsnNode.getOpcode();
        if (opcode == Opcodes.INVOKESTATIC) {
            sb.append("static ");
        }
        Type methodType = Type.getMethodType(methodInsnNode.desc);
        Type ownerType = Type.getObjectType(methodInsnNode.owner);

        // skip constructor return type
        if (methodInsnNode.name.equals("<init>")) {
            sb.append(ownerType.getClassName());
        } else {
            sb.append(methodType.getReturnType().getClassName()).append(' ');
            sb.append(methodInsnNode.name);
        }

        sb.append('(');
        Type[] argumentTypes = methodType.getArgumentTypes();
        for (int i = 0; i < argumentTypes.length; ++i) {
            sb.append(argumentTypes[i].getClassName());
            if (i != argumentTypes.length - 1) {
                sb.append(", ");
            }
        }
        sb.append(')');
        return sb.toString();

    }