【问题标题】:Create Object Name with Array使用数组创建对象名称
【发布时间】:2016-11-22 08:44:48
【问题描述】:

我想使用数组创建对象名称。我该怎么做?

例如:

String dizi ={"person1","person2","person3"};
Person dizi[0] = new Person();

【问题讨论】:

  • 格式化您的代码(在代码行前添加 4 个空格)。我会编辑它,但我在队列中有 5 个编辑,所以我不能
  • 抱歉,不可能。给 Person 对象一个名称参数。
  • 我认为,首先你应该做的是阅读一些有关 OOP 的内容。稍微澄清一下你的问题。
  • 您的代码存在多个问题。仅举几例:String dizi 定义单个字符串,而不是数组。 Person dizi[0] 重新定义了一个变量(不可能在同一范围内),看起来像一个数组声明和元素访问。我猜你想要Person[] dizi = new Person[3]; dizi[0] = new Person("person1"); ...
  • 更重要的问题是,您为什么首先要这样做?

标签: java arrays arraylist


【解决方案1】:

您尝试使用的技术适用于某些语言,尤其是解释性语言。它使用语言符号表作为映射。

在 Java 中,您可以构建自己的地图:

Map<String,Person> myMap = new HashMap<String, Person>();
myMap.put(dizi[0], new Person());

并使用以下方式访问它:

myMap.get(dizi[0])

【讨论】:

  • @ErenArıcı 不,它是地图,而不是列表。
【解决方案2】:

您不能将存储在数组中的对象类型从 String 更改为 Person。相反,您将需要两个单独的数组,并且假设您有一个 Person(String) 构造函数,循环遍历第一个数组以填充第二个数组:

String[] names = {"person1","person2","person3"};
Person[] persons = new Person[3];
for (int i = 0; i < 3; i++)
    persons[i] = new Person(names[i]);

【讨论】:

  • 从我读到的他想要的,例如person1,作为变量名,而不是改变它所指的内容。
  • 确实是这样。当然不能用 Java 完成。
  • 如果你有一个 Person(String name) 构造函数,上面的代码就可以工作,并且会填充一个 Person 对象数组。如果您打算这样做,它将不会创建“Person person1”变量 - 这在 Java 中是不可能的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-26
  • 1970-01-01
  • 1970-01-01
  • 2011-07-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多