首页 > 解决方案 > 如何在编译时未知的索引处从局部变量加载引用?

问题描述

据我了解 JVM 字节码规范, aload index将找到的引用推index送到当前堆栈帧上。就我而言,我需要aload在存储在局部变量中的索引处找到一个引用 - 像这样:aload (iload 2).

(这怎么可能?

标签: javajvmbytecodebytecode-manipulationjvm-bytecode

解决方案


这是不可能的。否则验证者将无法证明字节码的正确性。

要通过索引访问值,请使用具有相应字节码的数组对象,例如aaload.


推荐阅读