Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.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 使用cglib更改字段值_Java_Reflection_Cglib - Fatal编程技术网

Java 使用cglib更改字段值

Java 使用cglib更改字段值,java,reflection,cglib,Java,Reflection,Cglib,假设我们有类java.lang.reflect.field的对象field。可以通过field.set(o1,o2)将对象o1字段的值更改为o2`s字段的值。我想知道是否可以在一些库的帮助下更快地完成,例如cglib 否,JVM实现了一个JIT编译器,它使字节码生成在99.9%的情况下不再适用。在反射的情况下,人们有时使用代码生成来避免反射API暗示的安全检查。与此相反,您应该研究MethodHandles,它将此安全检查移动到句柄创建中,以便在每次调用时不会触发它

假设我们有类
java.lang.reflect.field
的对象
field
。可以通过
field.set(o1,o2)
将对象
o1
字段的值更改为
o2
`s字段的值。我想知道是否可以在一些库的帮助下更快地完成,例如cglib

否,JVM实现了一个JIT编译器,它使字节码生成在99.9%的情况下不再适用。在反射的情况下,人们有时使用代码生成来避免反射API暗示的安全检查。与此相反,您应该研究
MethodHandle
s,它将此安全检查移动到句柄创建中,以便在每次调用时不会触发它