假设我有一个类Object,其中一个方法只报告实例的ID号。通常,我会像“对象obj_1”那样硬编码Object类的实例化,并调用像“obj_1.report”这样的方法
我的问题是我如何在程序上实例化对象,例如我想创建n个对象,去obj_1,obj_2等等到obj_n。自然我不是在询问实际循环,而是关于如何使用变量实例化类,但是获取变量的值而不是其名称并将其添加到obj_前缀。也许是铸造?另外,我如何通过仅指定ID来程序性地调用特定实例的方法。我认为实例化和方法调用都会以同样的方式工作,但作为一个新手,我很难确定在运行中如何完成它而不是硬编码。
提前致谢!
编辑:我对c ++语法感兴趣
答案 0 :(得分:0)
我能想到的最佳解决方案是将您的对象存储在Map中,您的ID(“obj_1”,“obj_2”等)是引用这些实例的键。
Java(因为你没有指定语言),示例代码看起来像这样:
Map<String, Object> objMap = new HashMap<String, Object>();
for(int i = 1; i <= 10; i++) {
objMap.put("obj_" + 1, new Object());
}
for(int i = 1; i <= 10; i++) {
if(objMap.containsKey("obj_" + i))
objMap.get("obj_" + i).report();
}