Wie viele Parameter kann eine Methode in Java maximal haben und warum?
Ich verwende Java 1.8 auf einem 64-Bit-Windows-System.
Alle Antworten auf StackOverflow zu diesem Thema besagen, dass das technische Limit 255 Parameter beträgt, ohne anzugeben, warum.
Um genau zu sein, 255 für statische und 254 für nicht statische ( this
in diesem Fall 255.) Methoden.
Ich dachte, dies könnte in einer Art Spezifikation beschrieben werden und es gibt einfach eine statisch definierte maximale Anzahl von Parametern, die zulässig sind.
Dies galt jedoch nur für int
alle 4-Byte-Typen . Ich habe einige Tests mit long
Parametern durchgeführt und konnte in diesem Fall nur 127 Parameter deklarieren.
Mit String
Parametern ist die zulässige Zahl, die ich aus dem Testen abgeleitet habe, 255 (kann es sein, dass die Referenzgröße in Java 4 Byte beträgt?).
Da ich jedoch ein 64-Bit-System verwende, sollte die Referenzgröße 8 Byte breit sein, und daher sollte bei String
Parametern die maximal zulässige Anzahl 127 betragen, ähnlich wie bei long
Typen.
Wie wird diese Grenze genau angewendet?
Hat das Limit etwas mit der Stapelgröße der Methode zu tun ?
Hinweis: Ich werde diese vielen Parameter in keiner Methode wirklich verwenden, aber diese Frage dient nur dazu, das genaue Verhalten zu klären.
<= 4
. Alles andere sollte wahrscheinlich in ein Objekt eingewickelt werden.