¿Existe una longitud máxima para los 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).Longitud máxima del nombre de la variable o método en Java
Respuesta
Lo sentimos, en realidad encontrado la respuesta en el JLS: http://java.sun.com/docs/books/jls/third_edition/html/lexical.html#40625 parece que son los nombres de identificador de longitud ilimitada.
También encontrado pregunta similar (aunque no apareció en mi búsqueda inicial, o cuando he escrito el título de la pregunta que es raro): Maximum Method Name Length
Si no me equivoco, el límite no está en el idioma en sí, sino en el formato classfile, que limita los nombres a 64k, así que para todos los intentos prácticos la longitud del identificador no es un problema. En concreto, esta es la definición de una cadena constante en la piscina, que parece implicar la longitud máxima es de 16 bits:
CONSTANT_Utf8_info {
u1 tag;
u2 length;
u1 bytes[length];
}
Los nombres de clase pueden ser más de un problema para los sistemas de archivos, estoy de acuerdo, yo No estoy seguro de lo que actualmente es compatible.
Esta debería ser la respuesta aceptada – Henry
Si excede el límite de tamaño impuesto por la máquina virtual para el método nombres, entonces obtendrá un error de compilación (al menos con la versión de javac estoy usando):
Main.java:1: representación UTF8 de cadena "aaaaaaaaaaaaaaaaaaaa ..." es demasiado larga para el conjunto de constantes
- 1. Longitud máxima del nombre de la variable en JavaScript
- 2. longitud máxima del nombre del archivo
- 3. Nombre máximo del método Longitud
- 4. Nombre de visualización del paquete Longitud máxima
- 5. Longitud máxima del identificador
- 6. ¿Longitud máxima del nombre de instancia de SQL Server?
- 7. Nombre de usuario de Windows longitud máxima
- 8. Error del cargador SQL: "El campo de longitud variable excede la longitud máxima".
- 9. Longitud máxima del título Atributo
- 10. ¿Cuál es la longitud máxima de un nombre de método en ruby?
- 11. Longitud máxima de una variable de cadena en Android
- 12. Regex look-behind sin la longitud máxima obvia en Java
- 13. ¿Importa la longitud del nombre variable para el rendimiento C#?
- 14. Longitud máxima de un nombre de tabla en MySQL
- 15. Longitud máxima de la propiedad FormsAuthenticationTicket.UserData
- 16. Longitud máxima de byte []?
- 17. Longitud máxima del nombre de la base de datos en SQL Server
- 18. Longitud máxima para la cola de scala
- 19. Longitud máxima de un openID
- 20. ¿Cuál es la longitud máxima de una cadena en PHP?
- 21. Longitud máxima dirección IP del cliente
- 22. Longitud máxima del parámetro de datos send() en XMLHttpRequest Publicación
- 23. longitud de nombre de rutina en fortran90
- 24. carga máxima longitud
- 25. Título del icono de la aplicación Apple IOS: ¿longitud máxima?
- 26. longitud máxima de la solicitud HTTP GET?
- 27. SQLAlchemy: longitud máxima de columna
- 28. Arrays de longitud variable (dinámica) en Java
- 29. Establecer UITextField Longitud máxima
- 30. Longitud máxima del campo "tzname"/nombre del identificador de zona horaria
Eso es para el idioma, pero el formato del archivo de clase es más restrictivo. – Uri
Lo cual es realmente bastante sorprendente, considerando que el lenguaje fue creado para compilar para los archivos de clase ... – Uri
cierto, me pregunto qué pasaría si realmente intentas crear un nombre de variable ridículamente largo – talg