Esta pregunta surgió en la clase Spring, que tiene algunos nombres de clase bastante largos. ¿Existe un límite en el idioma para las longitudes de nombre de clase?¿Tiene Java un límite en la longitud del nombre de clase?
Respuesta
El Java Language Specification indica que los identificadores tienen una longitud ilimitada.
En la práctica, el sistema de archivos limitará la longitud del nombre del archivo resultante.
No. Java no impone ningún límite en el nombre de la clase. Pero si interactúa con otros sistemas (por ejemplo, JNI) es mejor estar en el lado seguro.
Eso se llama ** comportamiento indefinido ** y parte mala de cualquier especificación)) – gavenkoa
65535 caracteres Creo. Desde el Java especificación de la máquina virtual:
La longitud de los nombres de campo y método, de campo y método descriptores y otros valores de cadena constante es limitada a 65535 caracteres por el elemento de longitud sin firmar de 16 bits de la estructura CONSTANT_Utf8_info (§4.4.7). Tenga en cuenta que el límite está en el número de bytes en la codificación y no en el número de caracteres codificados. UTF-8 codifica algunos caracteres usando dos o tres bytes. Por lo tanto, las cadenas que incorporan caracteres multibyte son más restringidas.
aquí:
http://docs.oracle.com/javase/specs/jvms/se5.0/html/ClassFile.doc.html#88659
con JDK 1.5, el límite práctico para los nombres de clase en Windows XP con 255 - más largos nombres dio errores en el sistema de archivos. Este era el nombre completo (directorio + paquete + clase).
No he probado JDK 1.6 en Vista o windows 7, con suerte Sun lo fijó en el límite NTFS de 8000 o menos.
¿Alguien sabe la respuesta a JDK 1,6+? – ycomp
- 1. Qué efecto tiene $ en un nombre de clase de Java
- 2. ¿Existe un límite en la longitud del nombre de una hoja de cálculo de Excel?
- 3. Nombre máximo del método Longitud
- 4. ¿Por qué hay un límite del lado del servidor en la longitud de una URL?
- 5. ¿Cuál es un límite de longitud razonable en los campos de "Nombre" de la persona?
- 6. ¿Tiene un "+" en el nombre de la clase?
- 7. Java: ¿la clase Object tiene un constructor?
- 8. perlre límite de longitud
- 9. ¿Existe un límite en PHP para la longitud de un nombre de variable o nombre de función?
- 10. cómo ejecutar la clase de Java con el nombre del paquete tiene
- 11. $ 0 (Nombre del programa) en Java? Descubre la clase principal?
- 12. C# string tienen un límite de longitud
- 13. Longitud de cadena de límite
- 14. Longitud máxima del nombre de la variable o método en Java
- 15. Cómo obtener un objeto de clase del nombre de clase en Java
- 16. ¿Existe un límite de longitud de encabezado HTTP práctico?
- 17. clase heredada C++ tiene miembro del mismo nombre
- 18. Longitud máxima del nombre de la variable en JavaScript
- 19. longitud máxima del nombre del archivo
- 20. Impresión del nombre de clase derivada en la clase base
- 21. Límite de longitud de línea de origen
- 22. JAXB, clase tiene dos propiedades del mismo nombre
- 23. ¿La longitud del nombre de un archivo afecta los enormes índices de carpetas NTFS?
- 24. Nombre de visualización del paquete Longitud máxima
- 25. Longitud de límite de la matriz en PHP
- 26. longitud y longitud() en Java
- 27. Nombre de usuario de Windows longitud máxima
- 28. ¿Cómo obtener la longitud de un nsstring en nsstring que siempre tiene 2 dígitos de longitud?
- 29. Java genéricos nombre clash, tiene la misma borradura
- 30. ¿Hay algún límite de longitud de la ruta del archivo en NTFS?
La especificación Java VM indica que cualquier cadena constante está restringida a 65535 bytes: http://java.sun.com/docs/books/jvms/second_edition/html/ClassFile.doc.html#88659 –
Esto es de la segunda edición (igual que la respuesta de Jon). No hay tal referencia en la tercera edición. –
Está allí en la edición Java SE8. – EJP