簡體   English   中英

Java中變量或方法的最大名稱長度

[英]Max name length of variable or method in Java

Java 中的類/方法/變量名是否有最大長度? JLS似乎沒有提到這一點。 我知道從代碼可讀性和可維護性的角度來看,很長的名稱無論如何都是有問題的,但出於好奇是否存在限制(我猜類名可能受文件系統最大文件名限制)。

如果我沒記錯的話,限制不在於語言本身,而在於類文件格式,它將名稱限制為 64k,因此對於所有實際意圖和目的,標識符長度不是問題。 具體來說,這是池中常量字符串的定義,似乎暗示最大長度為16位:

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

類名對於文件系統來說可能更多是一個問題,我同意,我不確定當前支持什么。

JLS: 標識符是 Java 字母和 Java 數字的無限長度序列,其中第一個必須是 Java 字母。

還發現了類似的問題(盡管它沒有出現在我的初始搜索中,或者當我輸入了奇怪的問題標題時): Maximum Method Name Length

如果超過 VM 對方法名稱施加的大小限制,則會出現編譯器錯誤(至少在我使用的 javac 版本中):

Main.java:1:字符串“aaaaaaaaaaaaaaaaaaaa...”的 UTF8 表示對於常量池來說太長了

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM