首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在另一个变量中创建变量?

如何在另一个变量中创建变量?
EN

Stack Overflow用户
提问于 2012-09-16 12:11:43
回答 5查看 276关注 0票数 0

可能重复: Dynamic Variable Names in Java:

假设我有一个字符串,如下所示。

代码语言:javascript
运行
复制
String s = "Hello";

现在,我想创建一个字符串,但是字符串的变量将被称为"Hello“。为了使字符串的名称"Hello",我必须访问字符串s以获得“Hello”的名称,因此我可以将其用作变量名。下面是我想要看到的。

代码语言:javascript
运行
复制
String Hello = "I want to do this, But from Accessing String s So I KNOW that String s = Hello";

谢谢你的努力,请尽量向我解释,因为我是一个Java初学者。:D

EN

回答 5

Stack Overflow用户

发布于 2012-09-16 12:20:51

您要做的是添加一层间接。不能用静态语言(如Java/C/C++/Pascal/等)动态访问变量

您可以做的是模拟动态语言所使用的动态上下文,例如创建Map来保存变量名称和值。

代码语言:javascript
运行
复制
Map<String,String> stringVars = new HashMap<String,String>();

// set a "variable"
stringVars.put("Hello", "value");

// get a "variable"
System.out.println(stringVars.get("Hello"));
票数 3
EN

Stack Overflow用户

发布于 2012-09-16 12:31:45

使用反射(不建议):

代码语言:javascript
运行
复制
public class MainClass
{
    public String Hello = "I want to do this, But from Accessing String s So I KNOW that String s = Hello";

    public static void main(String[] args) throws Exception
    {
        MainClass m = new MainClass();

        String s = "Hello";
        String result = (String) MainClass.class.getField(s).get(m);
        System.out.println(result);
    }
}

输出:

代码语言:javascript
运行
复制
I want to do this, But from Accessing String s So I KNOW that String s = Hello

相反,使用地图作为其他图解。

票数 2
EN

Stack Overflow用户

发布于 2012-09-16 12:20:44

这在java中是不可能的。

唯一能做的就是使用map接口的实现,例如HashMap。使用put方法,您可以为给定的“名称”“分配”一个值。这个名称将是一个key,并且必须在一个映射中是唯一的,就像变量在它的作用域内有一个唯一的名称一样。

若要检索value,请调用传递适当key (ex )的get方法。字符串'Hello')作为参数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12446759

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档