Java에서 클래스/메소드/변수 이름의 최대 길이가 있습니까? JLS는 그런 언급을하지 않습니다. 어쨌든 코드 가독성과 유지 보수성 관점에서 볼 때 매우 긴 이름이 문제가 있다는 것을 알고 있습니다.하지만 호기심 때문에 제한이 있습니다 (클래스 이름은 파일 시스템의 최대 파일 이름 제한으로 인해 제한 될 수 있습니다).최대 이름 Java에서 변수 또는 메소드의 길이
답변
죄송합니다. 실제로 JLS에서 답변을 찾았습니다. http://java.sun.com/docs/books/jls/third_edition/html/lexical.html#40625 식별자 이름의 길이는 무제한 인 것으로 보입니다.
또한 비슷한 질문을 발견 (내 초기 검색에 나타나지 않았지만, 아니면 이상한 질문 제목 입력 할 때) : 당신이 방법에 대한 VM에 의해 부과 된 크기 제한을 초과하는 경우 Maximum Method Name Length
내가 잘못하지 않는다면, 제한은 언어 자체가 아니라 클래스 파일 형식으로되어 있기 때문에 이름을 64k로 제한합니다. 따라서 모든 실제 의도와 목적에 따라 식별자 길이는 문제가되지 않습니다.
CONSTANT_Utf8_info {
u1 tag;
u2 length;
u1 bytes[length];
}
클래스 이름은 파일 시스템에 대한 문제가 더있을 수 있습니다, 나는 동의 나 ': 특히이 최대 길이를 의미하는 것으로 보인다 풀에서 상수 문자열의 정의는 16 비트입니다 현재 지원되는 것이 확실하지 않습니다.
이것은 받아 들여진 대답이어야합니다 – Henry
을 상수 풀에 대해 너무 깁니다 "... aaaaaaaaaaaaaaaaaaaa"UTF8 표현 문자열 :
Main.java:1 : 이름은 당신은 (적어도 내가 사용하고 javac의 버전과) 컴파일러 오류
그것은 언어를위한 것이지만, 클래스 파일 형식은 더 제한적입니다. – Uri
언어가 클래스 파일 용으로 컴파일되었다는 것을 고려하면 실제로 상당히 놀랍습니다 ... – Uri
사실, 어리석게 긴 변수 이름을 실제로 만들려고하면 어떤 일이 발생하는지 궁금합니다 – talg