我需要特定的值存储到一个用户名到内存中,我在想是这样动态命名瓦尔,这样我就可以做这样的事情Java的:我应该如何存储每个用户的事情在内存
["bubby4j_falling"] = true;
和索引它通过
["bubby4j_falling"]
但是,这只是一个例子,我知道这是行不通的,我只是想办法快速,简单地获得和店里的东西动态。
我需要特定的值存储到一个用户名到内存中,我在想是这样动态命名瓦尔,这样我就可以做这样的事情Java的:我应该如何存储每个用户的事情在内存
["bubby4j_falling"] = true;
和索引它通过
["bubby4j_falling"]
但是,这只是一个例子,我知道这是行不通的,我只是想办法快速,简单地获得和店里的东西动态。
您想要使用带有字符串键的映射,例如HashMap<String, something>
。
你的榜样应该是这样的:
Map<String, Boolean> map = new HashMap<String, Boolean>();
map.put("bubby4j_falling", true);
if(map.get("bubby4j_falling")) {
...
}
其实,在你的情况下,Set<String>
会更加有用:
Set<String> fallingUsers = new HashSet<String>();
fallingUsers.add("bubby4j");
if(fallingUsers.contains("bubby4j")) { ... }
但UF你已经有了User
对象(和你应该),你最好使用Set<User>
,或者甚至让falling
只是用户对象的属性。然后,您可以使用Map<String, User>
按名称获取用户对象。
@PaŭloEbermann的回答是现货。
我只想指出Java语言没有任何类似动态变量变量。所有Java变量名称及其类型都在Java源代码中声明。即使反射也不会允许您在现有课程中即时创建新变量。
Java被设计为一种静态编程语言,如果以这种方式使用它,效果最好。 (理论上,如果你在源代码或字节代码生成技术方面混淆,你可以用新的变量动态地创建一个新的类,然而,这涉及到大量的工作,而不是一个明智的程序员考虑的东西为了解决一个简单的问题。此外,我怀疑这种方法实际上对你的特殊情况有帮助。)