java - 一个类是自动生成的,它没有被编译,编译错误是 "code too large"

标签 java jvm

具有 2500 个静态字段或实例变量以及 getter 和 setter 以及一些代码的类。总代码行超过20000,并且这个类是自动生成的,它没有被编译,编译错误是“代码太大”,如何修复它以及最大代码行是多少可以在java文件中。

最佳答案

该限制与代码总行数无关,而是与方法的大小有关 - 一个方法最多只能有 64KB 字节码。请注意,所有静态初始值设定项(包括变量的默认值)都编译为单个方法。

如果问题出在静态初始化程序中,请将其中的一些代码移至方法中(以便将总字节码分为多个方法,每个方法都足够小以进行编译)。如果问题出在普通方法太大,请将代码分成多个方法。这很可能涉及修改代码生成器,所以希望您能够做到这一点(如果它是一些常用的工具,如果您指定您使用的工具,这样建议可以针对该工具,这将会很有帮助)。

关于java - 一个类是自动生成的,它没有被编译,编译错误是 "code too large",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35983647/

相关文章:

java - Android 如何为 UI 事件编写一个简单的计时器?

java - Ant:解析 java arg 的通配符

java - 通过 ssh 远程执行 java 命令失败并出现 GC 错误

java - 带有外部 jar dao 的 spring mybatis

java - 如何在 big-o 中找到算法的运行时间

java - 不共享公共(public)资源的线程是否可以根据线程 ID/名称进行通知?

javax.ws.rs.ProcessingException : could not find writer for content-type application/json

java - 如何解决生产系统上的内存不足错误

java - JVM 类加载器无法从扩展类路径加载自定义 jar

json - 我是否刚刚通过使用 Jackson JSON 反序列化破坏了 JAVA 类型安全?