假设我有一个字符串,如下所示。
String s = "Hello";现在,我想创建一个字符串,但是字符串的变量将被称为"Hello“。为了使字符串的名称"Hello",我必须访问字符串s以获得“Hello”的名称,因此我可以将其用作变量名。下面是我想要看到的。
String Hello = "I want to do this, But from Accessing String s So I KNOW that String s = Hello";谢谢你的努力,请尽量向我解释,因为我是一个Java初学者。:D
发布于 2012-09-16 12:20:51
您要做的是添加一层间接。不能用静态语言(如Java/C/C++/Pascal/等)动态访问变量
您可以做的是模拟动态语言所使用的动态上下文,例如创建Map来保存变量名称和值。
Map<String,String> stringVars = new HashMap<String,String>();
// set a "variable"
stringVars.put("Hello", "value");
// get a "variable"
System.out.println(stringVars.get("Hello"));发布于 2012-09-16 12:31:45
使用反射(不建议):
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);
}
}输出:
I want to do this, But from Accessing String s So I KNOW that String s = Hello相反,使用地图作为其他图解。
发布于 2012-09-16 12:20:44
这在java中是不可能的。
唯一能做的就是使用map接口的实现,例如HashMap。使用put方法,您可以为给定的“名称”“分配”一个值。这个名称将是一个key,并且必须在一个映射中是唯一的,就像变量在它的作用域内有一个唯一的名称一样。
若要检索value,请调用传递适当key (ex )的get方法。字符串'Hello')作为参数。
https://stackoverflow.com/questions/12446759
复制相似问题