¿Cuál es el número máximo de parámetros que puede tener un método en Java y por qué?
Estoy usando Java 1.8 en un sistema Windows de 64 bits.
Todas las respuestas en StackOverflow sobre esto dicen que el límite técnico es 255 parámetros sin especificar por qué.
Para ser precisos, 255 para los this
métodos estáticos y 254 para los no estáticos ( será el 255 en este caso).
Pensé que esto podría describirse en algún tipo de especificación y que simplemente se permite un número máximo de parámetros estáticamente definido.
Pero esto solo era válido para int
todos los tipos de 4 bytes . Hice algunas pruebas con long
parámetros, y solo pude declarar 127 parámetros en ese caso.
Con String
parámetros, el número permitido que deduje de las pruebas es 255 (¿puede ser porque el tamaño de referencia es de 4 bytes en Java?).
Pero como estoy usando un sistema de 64 bits, el tamaño de las referencias debe ser de 8 bytes de ancho y, por lo tanto, con los String
parámetros, el número máximo permitido debe ser 127, similar a los long
tipos.
¿Cómo se aplica exactamente este límite?
¿El límite tiene algo que ver con el tamaño de la pila del método?
Nota: Realmente no voy a utilizar estos muchos parámetros en ningún método, pero esta pregunta es solo para aclarar el comportamiento exacto.
<= 4
. Algo más probablemente debería estar envuelto en un objeto.