sirve - Longitud máxima del nombre de la variable o método en Java
para que funciona el length en java (3)
¿Hay una longitud máxima para nombres de clase / método / variable en Java? el JLS no parece mencionar eso. Sé que los nombres muy largos son problemáticos de todos modos desde la legibilidad del código y la perspectiva de mantenimiento, pero solo por curiosidad hay una limitación (supongo que los nombres de las clases podrían estar limitados por la limitación máxima del nombre de archivo del sistema de archivos).
Lo sentimos, en realidad encontré la respuesta en el JLS: http://java.sun.com/docs/books/jls/third_edition/html/lexical.html#40625 Parece que los nombres de los identificadores son de longitud ilimitada.
También encontré una pregunta similar (aunque no apareció en mi búsqueda inicial, o cuando escribí el título de la pregunta, que es raro): Longitud máxima del nombre del método
Si no me equivoco, el límite no está en el idioma en sí, sino en el formato de archivo de clase, que limita los nombres a 64k, por lo que para todos los intentos prácticos y propósitos, la longitud del identificador no es un problema. Específicamente, esta es la definición de una cadena constante en el conjunto, lo que parece implicar que la longitud máxima es de 16 bits:
CONSTANT_Utf8_info {
u1 tag;
u2 length;
u1 bytes[length];
}
Los nombres de clases pueden ser un problema mayor para los sistemas de archivos, estoy de acuerdo, no estoy seguro de qué es lo que se admite actualmente.
Si sobrepasa el límite de tamaño impuesto por la VM para los nombres de método, entonces obtiene un error de compilación (al menos con la versión de javac que estoy usando):
Main.java:1: la representación UTF8 para la cadena "aaaaaaaaaaaaaaaaaaaa ..." es demasiado larga para el conjunto constante