Java 如何使用字符串引用变量
我试图引用一个变量使用某个字符串,但不知道如何做。我知道如果我真的必须使用if语句,我可以使用if语句,但我相信有一个简单的方法。例如,一个名为dog的整数。我将尝试使用另一个包含文本dog的字符串访问整数Java 如何使用字符串引用变量,java,Java,我试图引用一个变量使用某个字符串,但不知道如何做。我知道如果我真的必须使用if语句,我可以使用if语句,但我相信有一个简单的方法。例如,一个名为dog的整数。我将尝试使用另一个包含文本dog的字符串访问整数 private int dog; String anything = "dog"; 这有可能吗?谢谢 试试这个: // use a map for referring to a value given its name Map<String, Integer> va
private int dog;
String anything = "dog";
这有可能吗?谢谢 试试这个:
// use a map for referring to a value given its name
Map<String, Integer> vars = new HashMap<String, Integer>();
// for example, let's use these values
String anything = "dog";
int dog = 10;
// bind a value to a name
vars.put(anything, dog);
// retrieve the value, given its name
vars.get(anything);
=> 10
//使用映射引用给定名称的值
Map vars=newhashmap();
//例如,让我们使用这些值
String anything=“dog”;
int dog=10;
//将值绑定到名称
放(任何东西,狗);
//检索给定名称的值
获得(任何东西);
=> 10
publicstaticvoidmain(字符串[]args){
Map mapping=newhashmap();
}
或
newhashmap()
对于java 7之前的版本,有两个选项:创建连接两者的映射,或者使用反射。我更喜欢反思
要获取字段,请执行以下操作:
public class Test {
private int dog = 10;
private String anything = "dog";
public static void main(String[] args){
Test obj = new Test();
Object field = obj.getClass()
.getDeclaredField(obj.anything)
.get(obj);
System.out.println(field);
}
}
输出:
十,
创建要使用的类的对象。然后对该对象的类使用getDeclaredField()
方法。这将查看设置的private
字段,getField()
仅保存public
字段。就这样
我已经从帖子中删除了try-catch,因为它会使它变得杂乱无章。您应该使用字符串到整数的组合。比如说,
public static void main(String[] args) {
java.util.Map<String, Integer> dogMap = new java.util.HashMap<String, Integer>();
dogMap.put("Snoop", 10);
dogMap.put("doggy", 15);
dogMap.put("dog", 20);
System.out.println(dogMap);
}
@我想他需要更多的解释。也许你可以发布一个代码示例?天哪,这以前从未被问过。叹气……这是可能的(通过地图或反射),但您能证明为什么要这样做吗?我正在为游戏创建一个服务器,需要通过每个玩家的特定客户端ID引用他们,以便更新他们的位置。@Silver:然后使用地图,但不要尝试以这种方式使用变量。变量并不像您想象的那么重要,事实上,编译代码中几乎不存在变量。最重要的是参考资料,这就是地图对你的作用。在网站上搜索类似的问题(这是你应该做的,因为这个问题每天都会被问到)。
public static void main(String[] args) {
java.util.Map<String, Integer> dogMap = new java.util.HashMap<String, Integer>();
dogMap.put("Snoop", 10);
dogMap.put("doggy", 15);
dogMap.put("dog", 20);
System.out.println(dogMap);
}
{doggy=15, Snoop=10, dog=20}