Java 中变量或方法的最大名称长度

2022-09-01 00:33:25

Java中的类/方法/变量名称是否有最大长度?JLS似乎没有提到这一点。我知道从代码可读性和可维护性的角度来看,很长的名字是有问题的,但只是出于好奇,有一个限制(我猜类名可能会受到文件系统最大文件名限制的限制)。


答案 1

如果我没有记错的话,限制不在于语言本身,而在于classfile格式,它将名称限制为64k,因此对于所有实际意图和目的,标识符长度都不是问题。具体来说,这是池中常量字符串的定义,这似乎意味着最大长度为 16 位:

CONSTANT_Utf8_info {
    u1 tag;
    u2 length;
    u1 bytes[length];
}

类名对于文件系统来说可能是一个更大的问题,我同意,我不确定当前支持什么。


答案 2

JLS:标识符是无限长度的 Java 字母和 Java 数字序列,其中第一个必须是 Java 字母。

还发现了类似的问题(尽管它没有出现在我的初始搜索中,或者当我输入奇怪的问题标题时):最大方法名称长度


推荐