使用string作为Java中对象的名称

DSF*_*DSF 0 java string variables

好的,所以我有以下代码:

Random rnd = new Random();
int i = 0;
while(i<1000) {
  String name = "event" + i;
  Event name = new Event(rnd.nextInt(100000)); //ERROR duplicate variable
  SimEngine.getScheduler().addEventToQueue(event);
  i++;
}
System.out.println(SimEngine.getScheduler().getQueue().iterator());
Run Code Online (Sandbox Code Playgroud)

我知道两次宣布名字毫无意义,但我希望你能看到我想要做的事情.因为我想要名称为event1,event2,event3等的Event对象.

我怎样才能让它使用String名称作为Event对象的名称?

Jon*_*eet 6

因为我想要名称为event1,event2,event3等的Event对象.

对象不(通常)具有名称.变量有名字.你真的不希望有名字的变量event1,event2等虽然.

在这种情况下,如果您确实需要通过索引访问事件,则基本上应该使用数组.

Event[] events = new Event[1000];
for (int i = 0; i < 1000; i++) {
    events[i] = new Event(rnd.nextInt(100000));
    SimEngine.getScheduler().addEventToQueue(events[i]);
}
Run Code Online (Sandbox Code Playgroud)

当然,如果你以后不打算使用这个变量,那么无论如何它都是毫无意义的,而且你也可以:

for (int i = 0; i < 1000; i++) {
    SimEngine.getScheduler().addEventToQueue(new Event(rnd.nextInt(100000));
}
Run Code Online (Sandbox Code Playgroud)

如果这个特定类的类确实有一个与每个实例相关联的名称,我怀疑你需要将该名称传递给构造函数.