Assigning variables with dynamic names in Java

2018-12-31 00:01发布

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?

7条回答
浮光初槿花落
2楼-- · 2018-12-31 00:35

If you want to access the variables some sort of dynamic you may use reflection. However Reflection works not for local variables. It is only applyable for class attributes.

A rough quick and dirty example is this:

public class T {
    public Integer n1;
    public Integer n2;
    public Integer n3;

    public void accessAttributes() throws IllegalArgumentException, SecurityException, IllegalAccessException,
            NoSuchFieldException {

        for (int i = 1; i < 4; i++) {
            T.class.getField("n" + i).set(this, 5);
        }
    }
}

You need to improve this code in various ways it is only an example. This is also not considered to be good code.

查看更多
登录 后发表回答