Me gustaría asignar un conjunto de variables en Java de la siguiente manera:
int n1,n2,n3;
for(int i=1;i<4;i++)
{
n<i> = 5;
}
¿Cómo puedo lograr esto en Java?
java
variables
dynamic-variables
Ashish Anand
fuente
fuente
Respuestas:
No es así como se hacen las cosas en Java. No hay variables dinámicas en Java. Las variables de Java deben declararse en el código fuente 1 .
Dependiendo de lo que esté tratando de lograr, debe usar una matriz, a
List
o aMap
; p.ejEs posible utilizar la reflexión para hacer referencia de forma dinámica a las variables que se han declarado en el código fuente. Sin embargo, esto solo funciona para variables que son miembros de la clase (es decir, campos estáticos y de instancia). No funciona para variables locales. Vea el ejemplo "rápido y sucio" de @ fyr.
Sin embargo, hacer este tipo de cosas innecesariamente en Java es una mala idea. Es ineficiente, el código es más complicado y, dado que depende de la verificación del tiempo de ejecución, es más frágil. Y esto no es "variables con nombres dinámicos". Se describe mejor como acceso dinámico a variables con nombres estáticos.
1 - Esa afirmación es ligeramente inexacta. Si usa BCEL o ASM, puede "declarar" las variables en el archivo de código de bytes. ¡Pero no lo hagas! ¡De esa manera yace la locura!
fuente
Map<String, T>
en su lugar, no comience a jugar con su código real.Si desea acceder a las variables con algún tipo de dinámica, puede usar la reflexión. Sin embargo, Reflection no funciona para variables locales. Solo se aplica a los atributos de clase.
Un ejemplo rápido y sucio es este:
Necesita mejorar este código de varias maneras, es solo un ejemplo. Esto tampoco se considera un buen código.
fuente
Lo que necesitas se llama matriz. Quería escribir el siguiente código:
fuente
Deberías usar
List
o en suarray
lugarO
O mejor
fuente
Nombres de variables dinámicas en Java
No existe tal cosa.
En su caso, puede usar array:
Para
(name, value)
pares más generales , useMap<>
fuente
Prueba de esta manera:
fuente
Tu no Lo más parecido que puede hacer es trabajar con Mapas para simularlo o definir sus propios Objetos con los que lidiar.
fuente