如何传递String来命名对象?

时间:2013-10-06 00:03:08

标签: java object arraylist naming

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

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

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

3 个答案:

答案 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()方法并将其与某个名称进行比较。