&引用;“伪造”;javap本地表输出中的条目

&引用;“伪造”;javap本地表输出中的条目,java,javap,Java,Javap,我正在使用javap研究为我的一个类生成的代码,并注意到以下输出: ... frame_type = 255 /* full_frame */ offset_delta = 11 locals = [ class Test, double, int, double, double, bogus, bogus, int, int, class "[D" ] stack = [] ... locals表中那些“虚假”类型/变量条目的含义是什么?它们是如何引起的?它们对生成的代码有什么影

我正在使用
javap
研究为我的一个类生成的代码,并注意到以下输出:

...
frame_type = 255 /* full_frame */
  offset_delta = 11
  locals = [ class Test, double, int, double, double, bogus, bogus, int, int, class "[D" ]
  stack = []
...
locals
表中那些“虚假”类型/变量条目的含义是什么?它们是如何引起的?它们对生成的代码有什么影响

该类文件是使用Eclipse 3.7编译器生成的,
javap
来自OpenJDK-1.6b22。

我在查看文档时发现:

伪造的

公共静态最终类型

表示不可访问的值。代码无法访问此值 类型表示。它发生在字节码重用局部变量表时 具有非mergable类型的位置。一个例子是编译代码 对于一个分支中的基元类型使用相同的位置 另一分支中的引用类型


我认为这种模糊性是导致
locals
表中出现“虚假”条目的原因…

您能分享这种方法的来源吗?也许还有字节码?我猜它可能来自foreach、switch(enum)或其他需要编译器自动生成代码的特性之一。