¿Existe algún tamaño máximo para el código en Java? Escribí una función con más de 10,000 líneas. En realidad, cada línea asigna un valor a una variable de matriz.
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";
Y mientras compilo, aparece este error: código demasiado grande
¿Cómo puedo superar esto?
java
arrays
compiler-errors
code-size
trinidad
fuente
fuente
Respuestas:
¡Pero deberías limpiar esto!
Utilice el
.properties
archivo para almacenar estos datos y cárguelo mediantejava.util.Properties
Puede hacer esto colocando el
.properties
archivo en su classpath y usar:fuente
Hay un límite de tamaño de código de bytes de 64 K en un método
Habiendo dicho eso, tengo que estar de acuerdo con Richard; ¿Por qué necesitas un método tan grande? Dado el ejemplo en el OP, un archivo de propiedades debería ser suficiente ... o incluso una base de datos si es necesario.
fuente
enum
para verloDe acuerdo con la especificación de Java Virtual Machine , el código de un método no debe ser mayor de 65536 bytes. :
code_length
define el tamaño delcode[]
atributo que contiene el código de bytes real de un método:fuente
Esto parece un poco una locura. ¿No puede inicializar la matriz leyendo los valores de un archivo de texto o alguna otra fuente de datos?
fuente
Intente refactorizar su código. Existe un límite en el tamaño del método en Java.
fuente
Como se mencionó en otras respuestas, hay un límite de código de bytes de 64 KB para un método (al menos en el compilador java de Sun)
Para mí también tendría más sentido dividir ese método en más métodos, cada uno asignando ciertas cosas relacionadas a la matriz (podría tener más sentido usar una ArrayList para hacer esto)
por ejemplo:
Alternativamente, puede cargar los elementos desde un recurso estático si están arreglados como desde un archivo de propiedades
fuente
Yo mismo me he encontrado con este problema. La solución que funcionó para mí fue refactorizar y reducir el método a piezas más manejables. Como usted, estoy tratando con un método de casi 10K líneas. Sin embargo, con el uso de variables estáticas y funciones modulares más pequeñas, el problema se resolvió.
Parece que habría una solución mejor, pero al usar Java 8, no hay ninguna ...
fuente
Este error a veces ocurre debido a un código demasiado grande en una sola función ... Para resolver ese error, divida esa función en varias funciones, como
fuente
Puede agregar otro método para crear espacio para su código para espacio de datos adicional, es posible que tenga un método que esté ocupando una gran cantidad de espacio de datos. Intente dividir sus métodos porque tuve el mismo problema y corríjalo creando otro método adicional para los mismos datos en mi código Java de Android. El problema desapareció después de que hice eso.
fuente
Tengo una enumeración que hace que el archivo .java tenga un tamaño superior a 500 KB. Eclipse puede construirlo por alguna razón; el archivo ant build.xml exportado por eclipse no puede. Estoy investigando esto y actualizaré esta publicación.
fuente
Como hay un límite de tamaño para los métodos y no desea rediseñar su código en este momento, puede ser que pueda dividir la matriz en 4-5 partes y luego ponerlas en diferentes métodos. En el momento de leer la matriz, llame a todos los métodos de una serie. También puede mantener un contador para saber cuántos índices ha analizado.
fuente
esto se debe a todo el código en la solución de métodos únicos: cree más algunos métodos pequeños, entonces este error desaparecerá
fuente
ok, tal vez esta respuesta sea demasiado tarde, pero creo que esta forma es mejor que otra, así que
por ejemplo, tenemos 1000 filas de datos en código
romperlos
para un mejor rendimiento, ponga un "si" en sus códigos
Espero que este código te ayude
fuente