Qual è il numero massimo di parametri che può avere un metodo in Java e perché?
Sto usando Java 1.8 su un sistema Windows a 64 bit.
Tutte le risposte su StackOverflow a riguardo affermano che il limite tecnico è di 255 parametri senza specificare il perché.
Per essere precisi, 255 per i this
metodi statici e 254 per i metodi non statici ( sarà il 255 ° in questo caso).
Ho pensato che questo potesse essere descritto in una sorta di specifica e che ci fosse semplicemente un numero massimo di parametri definito staticamente consentito.
Ma questo era valido solo per int
tutti i tipi di 4 byte . Ho fatto alcuni test con long
parametri e sono stato in grado di dichiarare solo 127 parametri in quel caso.
Con i String
parametri, il numero consentito che ho dedotto dal test è 255 (potrebbe essere perché la dimensione di riferimento è 4 byte in Java?).
Ma dal momento che sto usando un sistema a 64 bit, la dimensione dei riferimenti dovrebbe essere larga 8 byte e quindi con i String
parametri il numero massimo consentito dovrebbe essere 127, simile ai long
tipi.
Come viene applicato esattamente questo limite?
Il limite ha qualcosa a che fare con la dimensione dello stack del metodo?
Nota: non userò davvero questi molti parametri in nessun metodo, ma questa domanda serve solo a chiarire il comportamento esatto.
<= 4
. Qualcosa di più dovrebbe probabilmente essere racchiuso in un oggetto.