如何从String创建变量名?

时间:2013-04-12 14:10:43

标签: java variables recursion while-loop

我正在制作许多变量,但我希望通过while语句来实现这一点。

问题在于我无法弄清楚如何将变量用作变量名的一部分,以便在循环id中创建的变量不会多次创建(从而导致错误)。

我有一个这样的循环:

int index = 0
while (index < 10){
    JLabel A1 = new JLabel("A" + [index]);
    index++;
}

显然我不希望我的所有变量都被称为A1,因为这不是合法的语法。我如何拥有它以便我的变量将是A [index]?

1 个答案:

答案 0 :(得分:11)

基本上,你没有。变量名称在编译时定义。

您要么需要某种基于索引的集合(数组,列表)或字符串键控集合(例如HashMap<String, JLabel>)。

如果想要通过索引访问而您以后不需要添加项目,那么只需使用数组:

JLabel[] labels = new JLabel[10];
for (int i = 0; i < labels.length; i++) {
    labels[i] = new JLabel("A" + i);
}

或者列表:

List<JLabel> labels = new ArrayList<JLabel>();
for (int i = 0; i < 10; i++) {
    labels.add(new JLabel("A" + i));
}