为什么Java反编译器会生成带有gotos的代码?

时间:2015-11-30 07:27:46

标签: java goto

在反编译.jar文件后,我在生成的Java代码中看到了这一行:

for (Iterator i = val.getparts(); i.hasNext(); goto 135)

这是什么意思?如果goto无法编译,为什么反编译的Java代码包含goto语句?

1 个答案:

答案 0 :(得分:2)

大多数反编译器都没有考虑Java源文件中goto无效的事实。它出现在jar和classfiles中,因为编译器使用它在bytecode级别实现以下内容:

  • if-else陈述
  • 循环
  • 开关
  • try-catch-finally阻止