假设我有一个从配置文件中读取信息的应用程序。假设每次我在该配置文件中遇到单词“Hello”时,我都希望能够创建一个 String 类型的变量并将其命名为 Hello0、Hello1、Hello2 等等...
我知道这样的动态变量在编程中是不可能的(在大多数情况下)。但是会有某种解决方法吗?比如让用户决定有多少变量?
最佳答案
HashMap 非常适合存储此类信息。
hashMap.put("Hello0", string);
存储您的信息
hashMap.get("Hello0");
把它拉出来。
如果您希望这些成为“类”(成员)变量,您可以将 hashmap 设为成员变量,这样它就会一直存在于类的生命周期中。
这很常见。许多动态语言(如 Ruby)实际上对其所有变量都使用散列映射,但它们隐藏了语法,因此您可以像在任何语言中一样访问它们。
如果语法真的让您感到厌烦,请像这样开始您的类(class):
public class MyClass {
private HashMap<String, Object> vars=new HashMap();
private var(String s, Object o) {
vars.put(s, o);
}
private Object var(String s) {
return vars.get(s);
}
}
然后您可以在类里面的任何地方使用:
var("var1", 5); // create or update variable 1 to the value 5
System.out.println("value ="+var("var2")); // get variable
稍微好一点的语法。 (但要注意第一个示例——如果您有问题,请查找“自动装箱”,因为当您将 int 作为对象传递时,Java 就是这样做的)
关于关于 "dynamic"变量的 Java 快速问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6076094/