在java 14中对VarHandle调用set会导致不满意的linkerror

在java 14中对VarHandle调用set会导致不满意的linkerror,java,kotlin,reflection,Java,Kotlin,Reflection,我通过对VarHandle实例的反射来调用set方法 set.invoke(varHandle, arrayOf(field, field.modifiers and Modifier.FINAL.inv())) 然而,每次我都会遇到令人不满意的链接错误,我找不到任何与我的情况相关的东西 Caused by: java.lang.UnsatisfiedLinkError: 'void java.lang.invoke.VarHandle.set(java.lang.Object[])' Va

我通过对VarHandle实例的反射来调用set方法

set.invoke(varHandle, arrayOf(field, field.modifiers and Modifier.FINAL.inv()))
然而,每次我都会遇到令人不满意的链接错误,我找不到任何与我的情况相关的东西

Caused by: java.lang.UnsatisfiedLinkError: 'void java.lang.invoke.VarHandle.set(java.lang.Object[])'

VarHandle指向的字段是字段类的修饰符字段

VarHandle
方法是签名多态的,需要编译器了解如何生成正确的调用指令。用数组调用它是行不通的。除此之外,你想做什么?不仅是对内部字段进行黑客攻击,而且经常对其进行黑客攻击,以至于您认为需要使用
VarHandle
优化访问?因为Java 8中没有
VarHandle
,“我需要它与Java 8兼容”不能成为使用
VarHandle
的原因。代码试图使用不存在的类,将仍然失败,无论您指定了哪个目标。仍然缺少信息,为什么Java 8兼容代码不能与Java 9一起使用,或者为什么Java 9版本必须使用
VarHandle
而不是其他反射操作选项之一。另请参见,这仍然无法解释您认为必须进行此攻击的原因。
VarHandle
set
方法具有签名多态性,需要编译器了解如何生成正确的调用指令。用数组调用它是行不通的。除此之外,你想做什么?不仅是对内部字段进行黑客攻击,而且经常对其进行黑客攻击,以至于您认为需要使用
VarHandle
优化访问?因为Java 8中没有
VarHandle
,“我需要它与Java 8兼容”不能成为使用
VarHandle
的原因。代码试图使用不存在的类,将仍然失败,无论您指定了哪个目标。仍然缺少信息,为什么Java 8兼容代码不能与Java 9一起使用,或者为什么Java 9版本必须使用
VarHandle
而不是其他反射操作选项之一。这仍然不能解释为什么你认为你必须做这个黑客。