-2

我需要创建一些对象来填充 ArrayList。这些对象需要被唯一标识。我希望让用户命名对象。当我去传递String的引用变量来命名对象时,是不允许的。

String input;
Object { input } = new Object();
arrayList.addObject( { input } );

如果无法动态命名对象,我该如何创建这些对象?

4

3 回答 3

1

你不是想命名一个对象;您正在尝试命名一个变量。解决办法是:不要。Java 不是这样工作的。在 Java 中,变量名实际上并不重要,而且在编译代码中几乎不存在。重要的是参考。而是使用 aMap<String, MyType>将 String 与对象相关联。AHashMap<String, SomeType>在这里工作得很好。

于 2013-10-06T00:06:53.633 回答
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函数,以便它比较名称

于 2013-10-06T00:08:33.223 回答
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()元素的方法并比较它的某个名称。

于 2013-10-06T00:09:09.327 回答