44

Javaのクラス/メソッド/変数名の最大長はありますか? JLSはそれについて言及していないようです。とにかく、コードの読みやすさと保守性の観点から、非常に長い名前が問題になることは知っていますが、好奇心から制限があります(ファイルシステムの最大ファイル名制限によってクラス名が制限される可能性があると思います)。

4

3 に答える 3

38

私が間違っていなければ、制限は言語自体ではなく、名前を 64k に制限するクラスファイル形式にあるため、すべての実用的な意図と目的のために、識別子の長さは問題になりません。具体的には、これはプール内の定数文字列の定義であり、最大長が 16 ビットであることを暗示しているようです。

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

ファイル システムではクラス名の方が問題になる可能性があります。同意します。現在サポートされているものはわかりません。

于 2009-03-30T03:53:16.200 に答える
27

JLS: 識別子は、Java 文字と Java 数字の無制限の長さのシーケンスであり、最初の文字は Java 文字でなければなりません。

同様の質問も見つかりました(最初の検索では表示されませんでしたが、奇妙な質問のタイトルを入力したときにも表示されませんでした):メソッド名の最大長

于 2009-03-30T03:54:37.243 に答える