Quel est le nombre maximum de paramètres qu'une méthode en Java peut avoir et pourquoi?
J'utilise Java 1.8 sur un système Windows 64 bits.
Toutes les réponses sur StackOverflow à ce sujet indiquent que la limite technique est de 255 paramètres sans préciser pourquoi.
Pour être précis, 255 pour les this
méthodes statiques et 254 pour les méthodes non statiques (ce sera la 255e dans ce cas).
Je pensais que cela pouvait être décrit dans une sorte de spécification et qu'il y avait simplement un nombre maximum de paramètres autorisés statiquement défini.
Mais ce n'était valable que pour int
et tous les types 4 octets . J'ai fait quelques tests avec des long
paramètres, et je n'ai pu déclarer que 127 paramètres dans ce cas.
Avec les String
paramètres, le nombre autorisé que j'ai déduit des tests est de 255 (c'est peut-être parce que la taille de référence est de 4 octets en Java?).
Mais comme j'utilise un système 64 bits, la taille des références doit être de 8 octets de large et donc avec les String
paramètres, le nombre maximum autorisé doit être de 127, similaire aux long
types.
Comment cette limite est-elle exactement appliquée?
La limite a-t-elle quelque chose à voir avec la taille de pile de la méthode?
Remarque: Je ne vais pas vraiment utiliser ces nombreux paramètres dans aucune méthode, mais cette question est uniquement pour clarifier le comportement exact.
<= 4
. Quelque chose de plus devrait probablement être enveloppé dans un objet.