2010-12-05 7 views
2

Doublons possibles:
Does Java have a limit on the class name length?
Max name length of variable or method in Java
Java.Variable name length.Java. Instance de longueur variable

i stupide, je sais, désolé ...

j'ai créé cette question Java.Variable name length, mais ici très mauvais exemple ... donc, j'essayer de créer de nouvelles questions, i ont cette classe:

class Test 
{ 
int i=10; 

public static void main(String args[]) 
{ 
System.out.println(new Test()); 
}} 

où nom de la variable est pas 'i' mais 'iiiiiii ....' avec la longueur 65535 (caractères iiiiiiiiii ...)

Le fichier .class a la même taille que le fichier .java. Compile - succès.

mais, quand i> 65535chars - Exception: UTF8 representation for string "iiiiiiiiiiiiiiiiiiii..." is too long for the constant pool

bingo!

Quelle conclusion pouvons-nous faire?

longueur illimitée - pas 100% correct.

Mais je trouve quelques informations que son problème n'est pas le langage java - c'est quelques problèmes avec classfile, donc quelqu'un sait: Quel problème?

+3

Je pense qu'il voulait dire, que le nom de la variable n'est pas 'je' mais 'iiiiiii ....' avec une longueur de 65535 caractères. –

+0

@Vladimir Ivanov, спасибо, дружище – user471011

+0

Alors, quelle est la question? Pourquoi pensez-vous que la longueur des noms de variables est illimitée? – khachik

Répondre

7

Il semble que cette question a été posée au moins deux ou trois fois ("Max name length of variable or method in Java", "Does Java have a limit on the class name length?"). La meilleure réponse semble être que si la spécification de langage Java ne limite pas les noms de constante, de classe ou de variable, la spécification de machine virtuelle Java (en particulier, le format de fichier de classe) impose une limite de 65535 caractères. Voir section 4.10 de la spécification JVM, dernier point de la puce.

+0

merci, bonne réponse! – user471011

2

Ok. Nous ne pouvons pas nommer les variables avec plus de 65534 caractères. Mais qui s'en soucie?

+1

Eh bien, bien sûr, * vous * pouvez utiliser des commentaires, mais * mon * code se documente ... et tout le reste. –

+0

personne, mais .... – user471011

+0

@Reese Moore, vous avez besoin de plus de 65535 caractères par nom de variable? –

Questions connexes