我需要创建一些对象来填充 ArrayList。这些对象需要被唯一标识。我希望让用户命名对象。当我去传递String的引用变量来命名对象时,是不允许的。
String input;
Object { input } = new Object();
arrayList.addObject( { input } );
如果无法动态命名对象,我该如何创建这些对象?
你不是想命名一个对象;您正在尝试命名一个变量。解决办法是:不要。Java 不是这样工作的。在 Java 中,变量名实际上并不重要,而且在编译代码中几乎不存在。重要的是参考。而是使用 aMap<String, MyType>
将 String 与对象相关联。AHashMap<String, SomeType>
在这里工作得很好。
您可能不想使用该Object
课程。相反,您应该创建自己的类(自动继承自该类,该类Object
有一个String
名为name
.IE 的字段:
Class MyClass{
myClass(String s){ name = s;}
private String name;
}
然后您可以MyClass myClass = new MyClass(name-inputted-by-user);
将其添加到您的数组列表中。您可能还希望覆盖该equals
函数,以便它比较名称
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()
元素的方法并比较它的某个名称。