Nom max longueur de la variable ou de la méthode en Java

y a-t-il une longueur maximale pour les noms de classe/méthode/variable en Java? le JLS ne semble pas en parler. Je sais que les noms Très longs sont problématiques de toute façon du point de vue de la lisibilité du code et de la maintenabilité, mais juste par curiosité il y a une limitation (je suppose que les noms de classe peuvent être limités par la limitation maximale du nom de fichier du système de fichiers).

36
demandé sur Allan Bowe 2009-03-30 07:50:12

3 réponses

si Je ne me trompe pas, la limite n'est pas dans la langue elle-même mais dans le format classfile, qui limite les noms à 64k, donc à toutes fins pratiques la longueur de l'identificateur n'est pas un problème. Plus précisément, c'est la définition d'une chaîne constante dans le pool, qui semble impliquer que la longueur maximale est de 16 bits:

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

les noms de classe peuvent être plus un problème pour les systèmes de fichiers, Je suis d'accord, Je ne suis pas sûr de ce qui est actuellement pris en charge.

31
répondu Uri 2009-03-30 03:58:21

Désolé, j'ai trouvé la réponse dans le JLS: http://java.sun.com/docs/books/jls/third_edition/html/lexical.html#40625 Il semble que les identifiants sont de longueur illimitée.

a aussi trouvé une question similaire (bien qu'elle n'apparaisse pas dans ma recherche initiale, ou quand j'ai tapé le titre de la question qui est bizarre): longueur maximale du nom de la méthode

18
répondu talg 2017-05-23 10:31:28

si vous dépassez la limite de taille imposée par la VM pour les noms de méthode, alors vous obtenez une erreur de compilation (au moins avec la version de javac que j'utilise):

Main.java:1: UTF8 représentation de chaîne "aaaaaaaaaaaaaaaaaaaa..." est trop long pour la piscine constante

7
répondu TofuBeer 2012-06-12 12:35:51