访问Java8局部变量

访问Java8局部变量,java,memory,reflection,java-native-interface,stack,Java,Memory,Reflection,Java Native Interface,Stack,方法局部变量在方法未结束时仍然可以访问,因为引用必须存储在某个地方,以防止Java垃圾收集器收集它。Java中或通过JNI是否有任何类或方法可以让我访问它或方法堆栈或定位对象引用 假设我通过反射从主类运行主类 thread类中的局部变量映射只包含对字符串编码器和解码器的软引用,其余8个条目为空。可能重复的我知道使用纯反射是不可能的,因为它们是线程的一部分,名称对我来说也不重要,只是作为对象或指针的引用(长值)“当方法未结束时,仍然可以访问方法局部变量”这不完全正确,因为如果某个变量超出范围,堆栈

方法局部变量在方法未结束时仍然可以访问,因为引用必须存储在某个地方,以防止Java垃圾收集器收集它。Java中或通过JNI是否有任何类或方法可以让我访问它或方法堆栈或定位对象引用

假设我通过反射从主类运行主类


thread类中的局部变量映射只包含对字符串编码器和解码器的软引用,其余8个条目为空。

可能重复的我知道使用纯反射是不可能的,因为它们是线程的一部分,名称对我来说也不重要,只是作为对象或指针的引用(长值)“当方法未结束时,仍然可以访问方法局部变量”这不完全正确,因为如果某个变量超出范围,堆栈可能会被覆盖,如:因此,很难预测该堆栈上会有什么。那么您试图做什么?为什么需要访问该局部变量?不确定是什么”如果某个变量超出范围,则重写“在您显示已显式调用垃圾收集器的情况下,如果您尝试在方法之后使用该对象,应用程序将崩溃。在我的例子中,我知道该对象存在,否则应用程序将无法工作/继续,因此它仍然像弱引用对象一样位于堆栈中。这里不需要显式调用它,只需从堆栈中删除它—但这里的情况似乎不是这样。但再说一遍:你为什么需要这个?