I’d like to assign a set of variables in java as follows:
int n1,n2,n3;
for(int i=1;i<4;i++)
{
n<i> = 5;
}
How can I achieve this in Java?
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
This is not how you do things in Java. There are no dynamic variables in Java. Java variables have to be declared in the source code1.
Depending on what you are trying to achieve, you should use an array, a
Listor aMap; e.g.It is possible to use reflection to dynamically refer to variables that have been declared in the source code. However, this only works for variables that are class members (i.e. static and instance fields). It doesn’t work for local variables. See @fyr’s “quick and dirty” example.
However doing this kind of thing unnecessarily in Java is a bad idea. It is inefficient, the code is more complicated, and since you are relying on runtime checking it is more fragile. And this is not “variables with dynamic names”. It is better described as dynamic access to variables with static names.
1 – That statement is slightly inaccurate. If you use BCEL or ASM, you can “declare” the variables in the bytecode file. But don’t do it! That way lies madness!