【问题标题】:I want to write a function in Java that takes a String as argument and creates an object with the same name我想用 Java 编写一个函数,它接受一个字符串作为参数并创建一个同名的对象
【发布时间】:2014-12-16 04:20:30
【问题描述】:

假设我正在获取人名并想创建同名的人对象,如下所示:

void foo(String str){
       Person str = new Person();
}

以便稍后我可以通过姓名来指代此人,例如:

int getAcoountNumber(String str){
      return str.acNumber;
}

【问题讨论】:

  • 查看 Java 反射 API
  • 非常不清楚您真正想要什么,但我敢打赌反思不是。根据您给出的示例,我建议您查看java.util.Map,并在谷歌上搜索更多内容。
  • 您可以拥有一个节点,其中存储了传递字符串和值。稍后您可以使用字符串识别该节点。
  • 它可以通过反射来完成,但使用 Map 可以实现相同的功能。
  • 我同意克里斯·海耶斯的观点。鉴于提供的信息,您似乎应该使用数据结构将 Persons 加载到内存中并通过某个 ID 调用它们。因此,创建一个带有 ID 属性的 Person 类,并将它们加载到 HashMap 数据结构中,并通过在地图中查找他们的字符串 ID 来找到您的“人”。

标签: java object-create objectname


【解决方案1】:

我认为您需要将 String str 映射到 Person str。

说地图是HashMap nameMap,把代码改成这样:

void foo(String str){
    Person p = new Person(str);
    nameMap.put(str, p);
}

int getAcoountNumber(String str){
      return nameMap.get(str).acNumber;
}

【讨论】:

  • 可能是正确的,但由于用户有拼写错误的倾向,您可能需要在尝试访问其任何成员之前检查nameMap.get(str) 是否有null
猜你喜欢
  • 2022-11-20
  • 1970-01-01
  • 2022-11-15
  • 2021-02-16
  • 1970-01-01
  • 2021-03-17
  • 1970-01-01
  • 1970-01-01
  • 2019-03-19
相关资源
最近更新 更多