Подтвердить что ты не робот

Ограничение ли Java на длину имени класса?

Этот вопрос возник в классе Spring, который имеет довольно длинные имена классов. Есть ли ограничение в языке для длины имен классов?

4b9b3361

Ответ 1

Java Language Specification утверждает, что идентификаторы неограниченны по длине.

На практике, однако, файловая система ограничивает длину результирующего имени файла.

Ответ 2

65535 символов Я верю. Из спецификации виртуальной машины 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

Ответ 3

С JDK 1.5 практический предел для имен классов в Windows XP с 255-длинными именами дал ошибки в файловой системе. Это было полное имя (каталог + пакет + класс).

Я не пробовал JDK 1.6 на Vista или Windows 7, надеюсь, Sun установил его как ограничение NTFS в 8000 или около того.

Ответ 4

Нет. Java не накладывает ограничений на имя класса. Но если вы взаимодействуете с другими системами (например, JNI), лучше быть в безопасности.