Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.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
Java 是否可以使用ByteBuddy';你有什么建议?_Java_Java Bytecode Asm_Byte Buddy - Fatal编程技术网

Java 是否可以使用ByteBuddy';你有什么建议?

Java 是否可以使用ByteBuddy';你有什么建议?,java,java-bytecode-asm,byte-buddy,Java,Java Bytecode Asm,Byte Buddy,当使用@Advice截取方法的实现时,是否可以访问局部变量?否,它不是,这部分是出于设计。方法的实现应该是一个私有细节,而advice在调用前后添加代码,其中方法的签名是其API的一部分 在某种程度上,Byte Buddy可能会提供替换某些字段和方法访问的可能性,但这种方式不依赖于实现 为了与显式字节码混合,byte Buddy提供了直接使用ASM API的AsmVisitorWrapper,该API比byte Buddy的高级API更适合字节码级操作

当使用
@Advice
截取方法的实现时,是否可以访问局部变量?

否,它不是,这部分是出于设计。方法的实现应该是一个私有细节,而advice在调用前后添加代码,其中方法的签名是其API的一部分

在某种程度上,Byte Buddy可能会提供替换某些字段和方法访问的可能性,但这种方式不依赖于实现

为了与显式字节码混合,byte Buddy提供了直接使用ASM API的
AsmVisitorWrapper
,该API比byte Buddy的高级API更适合字节码级操作