【发布时间】:2016-04-19 15:13:54
【问题描述】:
我正在开发一个虚拟项目,该项目根据 ArrayList 中包含的按钮数量添加 x 个按钮。
以下代码在每次执行for 循环块时创建一个new 按钮,并将其添加到名为listOfButtons 的ArrayList。
for (i = 0; i < 10; i++) {
JButton button = new JButton("Record " + String.valueOf(i + 1));
button.setAlignmentX(Component.CENTER_ALIGNMENT);
listOfButtons.add(button);
}
然后我只需将listOfButtons 中包含的按钮添加到面板中。
for (int i = 0; i < 10; i++) {
panel.add(listOfButtons.get(i));
}
有了这个上下文;我的问题是为什么以及如何创建具有相同名称的唯一按钮对象是合法的:button。我一直将对象创建理解为:当程序员创建一个与另一个引用变量同名的新对象引用变量时,新的引用变量将指向内存中不同的单个对象。
【问题讨论】:
-
当您在循环中创建一个新按钮时,该按钮是“本地”定义的。这意味着在每次迭代中,名为“button”的旧变量是未知的(除非您的列表中存在对它的引用。)。结果是列表中的每个条目都有唯一的引用,但条目本身没有名称。我希望一切顺利!
-
感谢大家的精彩回答。我赞成所有人,但由于我的声誉,它们不可见。