Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java快速问题;“动态”;变量_Java_Variables_Configuration - Fatal编程技术网

Java快速问题;“动态”;变量

Java快速问题;“动态”;变量,java,variables,configuration,Java,Variables,Configuration,假设我有一个从配置文件读取信息的应用程序。假设每次我在配置文件中遇到“Hello”这个词,我都希望能够创建一个String类型的变量,并将其命名为Hello0、Hello1、Hello2等等 我知道这样的动态变量在编程中是不可能的。但是会有一些解决办法吗?比如让用户决定有多少个变量 听起来您只需要一个列表——或者如果您需要按名称访问它们,可能需要一个映射。(所以“Hello”映射到一个字符串值列表。)听起来您只需要一个列表,或者如果您需要按名称访问它们,可能需要一个映射。(所以“Hello”映射

假设我有一个从配置文件读取信息的应用程序。假设每次我在配置文件中遇到“Hello”这个词,我都希望能够创建一个String类型的变量,并将其命名为Hello0、Hello1、Hello2等等


我知道这样的动态变量在编程中是不可能的。但是会有一些解决办法吗?比如让用户决定有多少个变量

听起来您只需要一个
列表
——或者如果您需要按名称访问它们,可能需要一个
映射
。(所以“Hello”映射到一个字符串值列表。)

听起来您只需要一个
列表,或者如果您需要按名称访问它们,可能需要一个
映射。(所以“Hello”映射到字符串值列表。)

哈希映射非常适合存储此类信息

hashMap.put("Hello0", string);
存储您的信息

hashMap.get("Hello0");
把它拔出来

如果希望这些变量是“类”(成员)变量,可以将hashmap设置为成员变量,以便它在类的生命周期中保持不变

这是很常见的。许多动态语言(如Ruby)实际上对所有变量都使用hashmaps,但它们隐藏了语法,因此您可以像在任何语言中一样访问它们

如果语法真的让您感到不适,请按如下方式启动您的类:

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);
    }
}

为了获得更好的语法。(但要注意第一个例子——如果您在查找“自动装箱”时遇到问题,因为当您将int作为对象传递时,Java就是这样做的)

哈希映射非常适合存储此类信息

hashMap.put("Hello0", string);
存储您的信息

hashMap.get("Hello0");
把它拔出来

如果希望这些变量是“类”(成员)变量,可以将hashmap设置为成员变量,以便它在类的生命周期中保持不变

这是很常见的。许多动态语言(如Ruby)实际上对所有变量都使用hashmaps,但它们隐藏了语法,因此您可以像在任何语言中一样访问它们

如果语法真的让您感到不适,请按如下方式启动您的类:

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);
    }
}

为了获得更好的语法。(但要注意第一个例子——如果您在查找“自动装箱”时遇到问题,因为当您将int作为对象传递时,Java就是这样做的)

在运行时,变量名没有任何意义。你能补充一些关于你想做什么的细节吗?但是变量的数量,这是我在运行时试图通过配置文件控制的,变量名没有任何意义。你能补充一些关于你想做什么的细节吗?但是变量的数量,这就是我试图通过配置文件控制的,你是人工智能吗?总是登录--速度快得吓人,准确得吓人。谁给你编码的石头!恭喜你,乔恩,你刚通过图灵测试。你是人工智能吗?总是登录--速度快得吓人,准确得吓人。谁给你编码的石头!恭喜你,乔恩,你刚通过图灵测试。