Java中如何批量创建带数字索引的多个同类型变量?
结论
你写的这种在循环中动态生成student1到student50独立变量的写法不可行,也完全不推荐。
原因
- 对于Java、C#、C++这类静态语言,变量名是编译阶段就固定的标识符,根本不支持运行时通过拼接数字动态生成变量名。
- 对于Python、JavaScript这类动态语言,虽然可以通过元编程手段强行生成动态命名的变量,但这是非常糟糕的编码实践:后续做遍历、批量传参、统计等操作时,你还是得挨个写50个变量名,完全没省掉工作量,还会让代码变得极难维护。
正确实现方式
这类批量创建同类型对象的场景,根本不需要定义50个独立变量,用数组/列表这类集合存储对象即可,完全可以通过循环完成批量初始化,后续通过索引就能访问对应对象。
以Java为例的实现代码:
// 类名建议遵循大驼峰命名规范,不要用小写student Student[] students = new Student[50]; for (int i = 0; i < 50; i++) { students[i] = new Student(param1, param2, param3, etc); }
如果是JavaScript这类动态语言,写法逻辑完全一致:
const students = []; for (let i = 1; i <= 50; i++) { students.push(new Student(param1, param2, param3, etc)); }
后续要访问原来的studentN,直接取集合对应索引位的元素即可:比如原来的student1对应students[0]、student50对应students[49]。如果要对所有学生做批量操作,直接遍历集合就行,不需要重复写50个变量名。
内容的提问来源于stack exchange,提问作者Luis Valerin
相关产品推荐
相关产品推荐

