Sé que un método no puede superar los 64 KB con Java. La limitación nos causa problemas con el código generado a partir de una gramática JavaCC . Tuvimos problemas con Java 6 y pudimos solucionarlo cambiando la gramática. ¿Se ha cambiado el límite para Java 7 o está previsto para Java 8?
Sólo para que quede claro. No necesito un método de más de 64 KB por mí mismo. Pero escribí una gramática que se compila con un método muy extenso.
Respuestas:
Según JVMS7 :
Pero de esto se trata
Java 7
.No hay especificaciones finales para Java 8, por lo que nadie (excepto sus desarrolladores) podría responder a esta pregunta.UPD (2015-04-06) Según JVM8 , también es válido para
Java 8
.fuente
Buena pregunta. Como siempre, debemos ir a la fuente para encontrar la respuesta ( "La especificación de la máquina virtual Java®" ). Sin embargo, la sección no menciona explícitamente un límite (como lo hizo la especificación Java6 VM), pero de manera algo circunspecta:
Salud,
fuente
No ha cambiado. El límite de código en los métodos sigue siendo de 64 KB tanto en Java 7 como en Java 8.
Referencias:
fuente
Andremoniy ya respondió la
java 7
parte de esta pregunta, pero parece que en ese momento era pronto para decidir,java 8
así que completo la respuesta para cubrir esa parte:Citando de jvms :
Como ve, parece que este problema histórico no parece solucionarse al menos en esta versión (Java 8).
fuente
Como solución alternativa, y si tiene acceso al código del analizador, puede modificarlo para que funcione dentro de los límites impuestos por el compilador de JVM ... (suponiendo que no lleve una eternidad encontrar las partes en el código del analizador para modificar)
fuente