这个问题出现在Spring类中,它有一些相当长的类名。类名长度的语言是否有限制?
答案 0 :(得分:47)
Java Language Specification表示标识符的长度不受限制。
但实际上,文件系统会限制生成的文件名的长度。
答案 1 :(得分:31)
字段和方法名称的长度, 字段和方法描述符,以及 其他常量字符串值是 限制为65535 个字符 16位无符号长度项 CONSTANT_Utf8_info结构(§4.4.7)。 请注意,限制是在数字上 编码中的字节数而不是 编码字符的数量。 UTF-8使用编码一些字符 两三个字节。因此,字符串 合并多字节字符是 进一步受到限制。
这里:
http://docs.oracle.com/javase/specs/jvms/se5.0/html/ClassFile.doc.html#88659
答案 2 :(得分:3)
对于JDK 1.5,Windows XP上具有255个更长名称的类名的实际限制在文件系统中给出了错误。这是全名(目录+包+类)。
我没有在Vista或Windows 7上尝试过JDK 1.6,希望Sun将其修复为8000左右的NTFS限制。
答案 3 :(得分:0)
没有。 Java不对类名施加任何限制。但是,如果你与其他系统(例如JNI)连接,那么最好是安全的。