关于 "dynamic"变量的 Java 快速问题

标签 java variables configuration

假设我有一个从配置文件中读取信息的应用程序。假设每次我在该配置文件中遇到单词“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/

相关文章:

java - 尝试给我的程序礼貌(JAVA初学者)

java - 如何从子 pom 覆盖 Maven 3.0 父插件属性

java - neo4j社区V1.9 - 如何在Spring中指定配置文件的路径?

python - 如何迭代配对值,以及如何从您正在使用的列表中命名变量?

powershell - 如何使用powershell中的函数更改脚本范围的变量?

C:配置文件和命令行解析器

java - 使用 Java Robot 类使用 Java applet 截取屏幕截图不起作用

java - 检查类名不应包含特定文本

configuration - 配置 Redis 以仅保留过去一天的 key

php - 如何在 Doctrine 中设置默认水化器?