我想基于Position
枚举类型创建100个新实例。在switch case语句中,我有5种情况,并且要基于枚举类型创建相应的Employee
实例。我的问题是,我不知道每次创建新实例时如何创建和分配新的变量名,例如:worker1,worker2,worker3。到目前为止,这是我提出的内容:
final String randomVariableName() {
int count = 1;
String s = "worker" + count;
count++;
return s;
}
final Position randomPosition(){
return positions[random.nextInt(positions.length)];
}
public void run() {
for (int i = 1; i <= 100; i++) {
String randomName = "worker" + i;
Position p = randomPosition();
switch (p) {
case PROJECT_LEADER:
ProjectLeader randomVariableName() = new ProjectLeader(p, randomName, 5000);
case DEVELOPER_LEADER:
DeveloperLeader randomVariableName() = new DeveloperLeader(p, randomName, 1000);
}
}
但是这样,我不能调用
randomVariableName()
方法,因为:Variable 'randomVariableName' is already defined in the scope
我什至不确定这将是一个好的解决方案。我只需要一种方法,就可以在切换情况下创建100个唯一的引用变量名称。
最佳答案
您不能在Java运行时创建新的变量名称。您可以做的是使用数组或集合来存储实例。
Employee employees[] = new Employee employees[100];
for (int i = 0; i < 100; i++) {
String randomName = "worker" + i;
Position p = randomPosition();
switch (p) {
case PROJECT_LEADER:
employees[i] = new ProjectLeader(p, randomName, 5000);
break;
case DEVELOPER_LEADER:
employees[i] = new DeveloperLeader(p, randomName, 1000);
break;
}
}
循环后,您可以通过
employees[0]
访问employees[99]
以获得100个实例。比使用原始数组更合适的是集合,例如您将实例添加到的
ArrayList<Employee>
。另外-切记在switch()内以中断的方式终止case语句
关于java - 如何在for循环和switch-case中生成100个不同的引用变量?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42829288/