Jaka jest maksymalna liczba parametrów, które może mieć metoda w Javie i dlaczego?
Używam języka Java 1.8 w 64-bitowym systemie Windows.
Wszystkie odpowiedzi na StackOverflow na ten temat mówią, że limit techniczny to 255 parametrów bez określenia dlaczego.
Dokładniej, 255 dla thismetod statycznych i 254 dla metod niestatycznych ( będzie to 255 w tym przypadku).
Pomyślałem, że można to opisać w jakiejś specyfikacji i że istnieje po prostu statycznie określona maksymalna liczba dozwolonych parametrów.
Ale dotyczyło to tylko inti wszystkich typów 4-bajtowych . Zrobiłem kilka testów z longparametrami i w tym przypadku byłem w stanie zadeklarować tylko 127 parametrów.
Z Stringparametrami dozwolona liczba, którą wydedukowałem z testów, to 255 (może to być spowodowane tym, że rozmiar odniesienia wynosi 4 bajty w Javie?).
Ale ponieważ używam systemu 64-bitowego, rozmiar referencji powinien mieć szerokość 8 bajtów, więc przy Stringparametrach maksymalna dozwolona liczba powinna wynosić 127, podobnie jak longtypy.
Jak dokładnie stosuje się ten limit?
Czy limit ma coś wspólnego z rozmiarem stosu metody?
Uwaga: tak naprawdę nie zamierzam używać tych wielu parametrów w żadnej metodzie, ale to pytanie ma na celu jedynie wyjaśnienie dokładnego zachowania.
<= 4. Coś więcej powinno być prawdopodobnie zawinięte w przedmiot.