如何在for循环中为每次创建的对象设置不同变量名?
Java 不支持运行时动态生成、修改变量名。你当前编写的代码存在作用域问题:循环内部声明的t1是单次循环块级作用域的局部变量,当前轮次循环执行结束后,这个变量就会被销毁,下一轮循环会重新创建同名的新变量,最终你无法持有任何一个已经创建的Ticket对象引用。
批量创建并管理多个同类型对象的标准方案是使用数组或集合容器存储,通过索引区分不同对象,完全可以满足区分不同实例的需求,批量操作时比动态变量名更方便:
- 固定创建10个对象的场景,直接用数组实现:
// 初始化长度为10的Ticket数组,用于存储所有创建的实例 Ticket[] tickets = new Ticket[10]; for (int i = 0; i < 10; i++) { tickets[i] = new Ticket(); }
后续需要访问第k个创建的实例(k从0开始计数),直接调用tickets[k]即可,和你预期的t0、t1……t9独立变量的访问效果完全一致。
- 如果后续需要动态增减对象数量,推荐使用
ArrayList这类动态集合,灵活性更高:
import java.util.ArrayList; import java.util.List; List<Ticket> ticketList = new ArrayList<>(); for (int i = 0; i < 10; i++) { ticketList.add(new Ticket()); } // 访问第k个实例时调用 ticketList.get(k) 即可
内容的提问来源于stack exchange,提问作者Filip Binda
相关产品推荐
相关产品推荐

