Java是否对类名长度有限制?

时间:2009-06-24 15:16:33

标签: java name-length

这个问题出现在Spring类中,它有一些相当长的类名。类名长度的语言是否有限制?

4 个答案:

答案 0 :(得分:47)

Java Language Specification表示标识符的长度不受限制。

但实际上,文件系统会限制生成的文件名的长度。

答案 1 :(得分:31)

我相信<655>个字符。来自Java虚拟机规范:

  

字段和方法名称的长度,   字段和方法描述符,以及   其他常量字符串值是   限制为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)连接,那么最好是安全的。