你能从字符串引用java变量吗?

时间:2012-10-11 06:25:23

标签: java cookies map

嗨,我有一个关于java的奇怪问题。我将省略背景信息,以免使其复杂化。如果你有一个名为fname的变量。并且假设你有一个函数返回一个名为“fname”的字符串。有没有办法说通过字符串“fname”引用标识符fname。这个想法就像“fname”.toIdentifier()= value,但显然toIdentifier并不是一个真正的方法。

我想有点背景螨有帮助。基本上我有一个字符串“fname”映射到另一个字符串“fname的值”。我想要一种方法来快速说出变量fname =来自地图的键“fname”的值。我通过迭代表单中的cookie映射获得键值对。而且我不想做“if key =”fname“将fname设置为”fname的值“,因为我有大量需要这样设置的变量。我宁愿做类似currentkey.toIdentifer = thevalue的事情。奇怪的问题也许我忽略了一种更简单的方法来解决这个问题。

2 个答案:

答案 0 :(得分:2)

为什么不直接使用简单的hashmap?

Map<String, String> mapping = new HashMap<String, String>();
mapping.put("fname", "someValue");
...

String value = mapping.get(key); //key could be "fname"

答案 1 :(得分:1)

在某种程度上,您将描述用于反射的内容:

您可以按名称引用对象的字段和方法。

然而,大多数时候,当人们提出这样的问题时,他们最好通过重新设计并利用地图等数据结构来解决问题。


以下是一些代码,展示了如何从两个数组创建Map

String[] keyArray = { "one", "two", "three" };
String[] valArray = { "foo", "bar", "bazzz" };

// create a new HashMap that maps Strings to Strings

Map<String, String> exampleMap = new HashMap<String, String>();

// create a map from the two arrays above

for (int i = 0; i < keyArray.length; i++) {
    String theKey = keyArray[i];
    String theVal = valArray[i];
    exampleMap.put(theKey, theVal);
}

// print the contents of our new map

for (String loopKey : exampleMap.keySet()) {
    String loopVal = exampleMap.get(loopKey);
    System.out.println(loopKey + ": " + loopVal);
}

以下是JavaDoc for Map的链接。