一个类是自动生成的,它没有被编译,编译错误是"代码太大"

时间:2016-03-14 09:24:45

标签: java jvm

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

1 个答案:

答案 0 :(得分:0)

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

如果问题出在静态初始化程序中,请将一些代码从中移动到方法中(以便将总字节码分成多个方法,每个方法都足够小,可以编译)。如果问题是普通方法太大,请将代码分成多个方法。很可能这将涉及修改代码生成器,所以希望你能够做到这一点(如果它是一些常用的工具,如果你指定了你使用的工具,这将是有用的,因此建议可以特定于工具)。

相关问题