2014-04-29 61 views
-1

我想创建一个循环了很多实例,但创建实例时,我尝试字符串连接生成唯一的名称Java不容许operation.My意见是这里具有独特的名字

for (Classroom classTmp : classrooms) 
     { 
      String s = "sessionClassroom" + count; 

      SessionClassroom s = new SessionClassroom(classTmp); 



     } 

哪有ı生成唯一的名称来创建SessionClassroom对象?感谢您的帮助。

+1

使用了' s'作为String变量,再次作为SessionClassroom变​​量 – deanosaur

+0

这是不可能的,也没有任何意义。如果你描述什么,并通过做这样的事情展示你实际上想要完成的事情,我们可能会帮助你展示如何做到。 – Affe

回答

0

,如果你想通过名称来访问他们应该使用一个地图来保存会话:

Map<String, ClassroomSession> classroomSessions = new TreeMap<String, ClassroomSession>(); 
int count = 0; 
for (Classroom classTmp: classrooms) { 
    count++; 
    String name = "sessionClassroom" + count; 
    SessionClassroom s = new SessionClassroom(classTmp); 
    classroomSessions.put(name, s); 
} 

然后以访问sessionClassroom3,例如:

classroomSessions.get("sessionClassroom3").doSomething(); 
1

你所得到的错误是因为该对象被称为是相同的:

String s = "sessionClassroom" + count; 

SessionClassroom s = new SessionClassroom(classTmp); 

的问题是,他们都是叫s。连接操作("sessionClassroom" + count)完全正确。

为了解决此问题,您应该重命名String sSessionClassroom s以使用不同的名称。例如:

String s = "sessionClassroom" + count; 

SessionClassroom sc = new SessionClassroom(classTmp); 

编辑: 如果你想要的是有来自外部的for循环教室(计数)的数量,那么你应该使用一个数据结构就像一个List访问尽可能多的SessionClassroom值是什么:

List<SessionClassroom> list = new ArrayList<SessionClassroom>(); 

for (Classroom classTmp : classrooms) 
{ 
    String s = "sessionClassroom" + count; 

    list.add(new SessionClassroom(classTmp)); 
} 
+0

谢谢,但我不知道如何解决这个问题。 –

+0

我刚刚编辑我的答案 –

+0

对不起,我的Java知识,但ı想生成SessionClass对象与变量名称“s”。我不想一次又一次地写SessionClassroom sessionClassroom1,2,3,4 =新SessionClassroom(classTmp); –

0

根据您想要访问成员的方式,最好将其存储为ArrayList。

喜欢的东西

ArrayList<SessionClassroom> lSessions = new ArrayList<SessionClassroom>(); 

然后在循环放

lSessions.add(new SessionClassroom(classTmp)); 

这取决于你想如何访问会话了很多。