首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何规避Java编译中的“方法太大”错误?

如何规避Java编译中的“方法太大”错误?
EN

Stack Overflow用户
提问于 2010-07-07 16:02:59
回答 4查看 3.2K关注 0票数 5

我有一个用bigloo方案函数式语言编写的解析器,我需要将其编译成java类。整个解析器被编写为一个单独的函数。不幸的是,这会导致JVM编译器抛出“方法太大”警告,并在稍后给出“localvar中的远标签”错误。有没有什么可能的方法可以避免这个错误?我在某处读到一个DontCompileHugeMethods选项,它能工作吗?对我来说,拆分函数似乎不是一个可行的选择:( !!

EN

回答 4

Stack Overflow用户

发布于 2010-07-07 16:10:28

有没有什么可能的方法可以避免这个错误?

那么,这个编译器错误的根本原因是在字节码文件的格式中有硬限制。在这种情况下,问题是单个方法最多可以包含65536字节的字节码。(请参阅JVM spec)。

唯一的解决方法是拆分方法。

票数 3
EN

Stack Overflow用户

发布于 2010-07-07 16:18:31

在相关操作中拆分方法,或者单独拆分实用程序。

票数 0
EN

Stack Overflow用户

发布于 2010-07-07 16:30:40

,这里的情况有点不同,这个方法只包含一个函数调用。现在这个函数有一个很大的参数列表(实际上是整个解析器!!)。所以我不知道如何拆分它!

拆分这种野兽的方法可能是:

  • 为参数定义数据持有者对象(根据数据模型的本体将参数集放入对象中),
  • 在其自己的上下文中构建这些数据持有者对象
  • 将参数对象传递给function
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3192896

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档