Java 创建具有唯一名称的实例
我想在一个循环中创建很多实例,但当ı尝试串接以生成唯一名称时,Java不允许该操作Java 创建具有唯一名称的实例,java,Java,我想在一个循环中创建很多实例,但当ı尝试串接以生成唯一名称时,Java不允许该操作 for (Classroom classTmp : classrooms) { String s = "sessionClassroom" + count; SessionClassroom s = new SessionClassroom(classTmp); } 如何生成唯一的名称来创建SessionClass
for (Classroom classTmp : classrooms)
{
String s = "sessionClassroom" + count;
SessionClassroom s = new SessionClassroom(classTmp);
}
如何生成唯一的名称来创建SessionClassroom对象?谢谢您的帮助 您得到的错误是因为对象被称为相同的:
String s = "sessionClassroom" + count;
SessionClassroom s = new SessionClassroom(classTmp);
问题是它们都被称为s
。连接操作(“sessionClassroom”+count
)完全正确
为了解决此问题,您应该重命名String s
或SessionClassroom s
以使用不同的名称。例如:
String s = "sessionClassroom" + count;
SessionClassroom sc = new SessionClassroom(classTmp);
编辑:
如果您希望从for循环外部访问的SessionClassroom值与教室数量(计数)一样多,那么您应该使用类似列表的数据结构:
List<SessionClassroom> list = new ArrayList<SessionClassroom>();
for (Classroom classTmp : classrooms)
{
String s = "sessionClassroom" + count;
list.add(new SessionClassroom(classTmp));
}
List List=new ArrayList();
用于(教室类TMP:教室)
{
字符串s=“sessionClassroom”+计数;
添加(新课时教室(classTmp));
}
根据访问成员的方式,最好将其存储为ArrayList
差不多
ArrayList<SessionClassroom> lSessions = new ArrayList<SessionClassroom>();
这在很大程度上取决于您希望如何访问会话。如果您希望按名称访问会话,则应使用映射来保存会话:
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);
}
您将
s
用作字符串变量,再次用作SessionClassroom变量,这是不可能的,也没有任何意义。如果你描述了你做这件事的目的并展示了你真正想要完成的事情,我们可能会帮助你展示如何去做。谢谢你,但我不知道如何解决这个问题。对不起,我的java知识,但我想生成变量名为“s”的SessionClass对象.我不想一次又一次地写SessionClassroom SessionClassroom 1,2,3,4=新SessionClassroom(classTmp);这并不能解决他的问题。他希望根据字符串动态命名会话,而AFAIK无法这样做。您几乎可以更改为任何您想要的。您只需确保String变量和SessionClassroom变量具有不同的名称。如果要保留SessionClassroom s
,则应将String s
重命名为类似于String str
的名称。它们不能被称为相同的。好吧,如果我理解你的意思,你应该使用数组。
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);
}
classroomSessions.get("sessionClassroom3").doSomething();