Q:是否可以使用字符串值动态创建变量名Java?
例如,给出以下代码:
<code class="java">String name = "dog"; dog name = new dog();</code>
如何指示 Java 将“name”解释为字符串并将其分配给新创建的“dog”对象?
答: 虽然 PHP 等一些脚本语言允许这种行为,但 Java 不允许。在 Java 中,变量名与变量引用不同,变量引用提供对特定对象的访问。
实现所需功能的一种方法是利用 Map 将字符串与对象关联。例如:
<code class="java">Map<String, Dog> dogMap = new HashMap<>(); dogMap.put("Fido", new Dog("Fido")); Dog myPet = dogMap.get("Fido");</code>
或者,还有许多其他方法来获取对象的引用,例如数组、ArrayList、LinkedList 和其他集合。
进一步说明:
如果目标是动态创建一个具有任意名称的对象,并且该名称在创建后仍然存在,那么了解变量名称与“对象名称”不同义是很重要的。尽管名称不同,“fido”和“spot”这两个变量都将保存对同一对象的引用。
<code class="java">Dog fido = new Dog; Dog spot = fido; // now fido and spot refer to the same object</code>
要为每个对象分配“名称”,请考虑添加“名称”属性到类。
<code class="java">class Dog { private String name; public Dog(String name) { this.name = name; } public String getName() { return name; } }</code>
这允许每个 Dog 对象拥有自己唯一的名称。
以上是我可以在 Java 中使用字符串值动态创建变量名吗?的详细内容。更多信息请关注PHP中文网其他相关文章!