Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用ASM4.0(Java字节码库)创建方法适配器_Java_Java Bytecode Asm - Fatal编程技术网

使用ASM4.0(Java字节码库)创建方法适配器

使用ASM4.0(Java字节码库)创建方法适配器,java,java-bytecode-asm,Java,Java Bytecode Asm,有没有人找到创建方法适配器的示例ASM代码(java字节码库)的链接?(要调整的方法的返回类型和参数直到运行时才知道) 您认为下面所示的修改是否适用于ASM 以下代码: public Blah doBling( Bling bling ){ Blah blah = doSomething( bling ); return blah; } 使用java代理将其修改为以下代码: private Blah _doBling( Bling bling ){ Blah blah =

有没有人找到创建方法适配器的示例ASM代码(java字节码库)的链接?(要调整的方法的返回类型和参数直到运行时才知道)

  • 您认为下面所示的修改是否适用于ASM

  • 以下代码:

    public Blah doBling( Bling bling ){
    
    Blah blah = doSomething( bling );
        return blah;
    }
    
    使用java代理将其修改为以下代码:

    private Blah _doBling( Bling bling ){
    
         Blah blah = doSomething( bling );
         return blah;
    }
    
    public Blah doBling( Bling bling ){
    
        if ( Mode.recordMode() ){
    
            Blah blah = _doBling( bling );
            Mode.record( blah );
            return blah;
        }
        else {
            Blah blah = Mode.playback( bling );
            return blah;
        }
    }
    

    看看这个,它有你需要的一切。另外,使用asmizer可以简化您的任务。是的,使用ASM是完全可能的。