【问题标题】:How to create array with same name from its function input parameter如何从其函数输入参数创建具有相同名称的数组
【发布时间】:2011-09-19 23:38:35
【问题描述】:

我该如何解决这个问题:

class Name {

public void createArray(String name)
{
 String name=new String[200];//we know, we can't do this- duplicate local variable,need a fix here.
}
  }

我想以数组名称作为输入参数 = 名称创建字符串数组, 示例:

1) 用于函数调用 createArray(domain1) -> 我基本上需要这样做 -> String domain1=new String[200];

2) 用于函数调用 createArray(domain22)-> 我需要函数来创建 String domain22=new String[200]; 希望这个编辑有帮助。 注意:有可能通过函数两次/三次传递相同的名称。像 createArray(domain1); 一样,那时我想忽略数组的创建。

【问题讨论】:

  • 你的问题一点都不清楚。你想创建一个新的String?还是Strings 的数组?你想用什么来初始化它们?为什么要两个同名的局部变量?
  • 不完全清楚您要达到的目标。为什么不能将数组作为类成员而不是局部变量?类似的东西:ArrayList dynArray = new ArrayList(); ... ... createArray(String name) { dynArray.add(name); } ...
  • 您在问题中要求的内容在 Java 中无法直接实现。变量名仅在编译时存在,在运行时不存在。以下来自@MeBigFatGuy 的答案是您将得到的最接近的答案。
  • @All,请看我编辑的问题。

标签: java arrays string parameters


【解决方案1】:

将新的 String[200] 对象存储在以名称为键的 Map 中

Map<String, String[]> myarrays = new HashMap<String, String[]>();

myarrays.put("name", createArray("name"));
myarrays.put("test", createAray("test"));

那么当你想要其中一个时

String[] data = myarrays.get("test");

【讨论】:

  • 这是您想要的最接近的。如果上面看起来很困难,请在您自己的方法中使用 myarrays:createArray(String name) { myarrays.put(name, new String[200]);} 其中 myarrays 仍然是类级别成员,然后您可以迭代此映射以找出“变量名”,以及与这些伪变量名关联的字符串数组。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-18
  • 2016-03-15
  • 2021-09-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多