我需要创建一些对象来填充ArrayList。需要唯一地识别这些对象。我希望让用户为对象命名。当我去传递String的引用变量来命名对象时,不允许这样做。
String input;
Object { input } = new Object();
arrayList.addObject( { input } );
如果无法动态命名对象,我该如何创建这些对象?
答案 0 :(得分:1)
您不是要命名对象;您正在尝试命名变量。解决方案是:不要。这不是Java的工作方式。在Java中,变量名称实际上并不重要,并且在编译代码中几乎不存在。相反,引用是重要的。而是使用Map<String, MyType>
将String与对象相关联。 HashMap<String, SomeType>
在这里运作良好。
答案 1 :(得分:0)
您可能不想使用Object
课程。相反,您应该创建自己的类(它自动从Object
继承,其String
字段名为name
。IE:
Class MyClass{
myClass(String s){ name = s;}
private String name;
}
然后你可以MyClass myClass = new MyClass(name-inputted-by-user);
并将其添加到你的数组列表中。您可能还希望覆盖equals
函数,以便比较名称
答案 2 :(得分:0)
Object
没有name
字段。您可以创建自己的类,然后将该类的实例添加到您的集合中。
你可以这样做:
public class CustomItem
{
private String name;
public CustomItem(String n)
{
this.name = n;
}
public String getName()
{
return this.name;
}
}
并将其添加到arrayList
,如下所示:
arrayList.add(new CustomItem("I1"));
如果要检查集合中的特定元素是否与某个名称匹配,则可以在该元素上调用getName()
方法并将其与某个名称进行比较。