Java中的代码有最大长度限制吗?我写了一个超过10,000行的函数。实际上,每一行都为一个数组变量赋值。
arts_bag[10792]="newyorkartworld";
arts_bag[10793]="leningradschool";
arts_bag[10794]="mailart";
arts_bag[10795]="artspan";
arts_bag[10796]="watercolor";
arts_bag[10797]="sculptures";
arts_bag[10798]="stonesculpture"; 在编译时,我得到这样的错误:代码太大
我该如何克服这个问题?
发布于 2010-03-09 17:35:50
类中的单个方法最多只能有64KB的字节码。
但是你应该把它清理干净!
使用.properties文件存储此数据,并通过java.util.Properties加载它
您可以通过将.properties文件放在类路径中来完成此操作,并使用:
Properties properties = new Properties();
InputStream inputStream = getClass().getResourceAsStream("yourfile.properties");
properties.load(inputStream);发布于 2010-03-09 17:36:33
method上有64K字节码大小限制
话虽如此,我不得不同意Richard的观点;为什么你需要这么大的方法?给定OP中的示例,一个属性文件应该足够...如果需要的话,甚至是一个数据库。
发布于 2010-03-09 17:48:00
根据Java Virtual Machine specification的说法,the code of a method must not be bigger than 65536 bytes
code_length项的值给出了此方法的code数组中的字节数。
code_length的值必须大于零(因为代码数组不能为空)且小于65536。
code_length定义code[]属性的大小,该属性包含方法的实际字节码:
code数组给出了实现该方法的
虚拟机代码的实际字节数。
https://stackoverflow.com/questions/2407912
复制相似问题