【发布时间】:2015-07-29 14:16:31
【问题描述】:
我正在尝试找到一种将字符串值转换为变量的方法。这可能吗?
例如:
String str = "chicken";
/*Then have it so I can do this*/
int chicken = 2;
我知道我可以只输入变量名,但我想要这样一个用户输入,它是一个字符串,可以在单击按钮后转换为变量名。 这就是我的意思:
/*This is in JavaFX*/
Button button = new Button("Click Me");
TextField userText = new TextField();
ArrayList<List> randomList = new ArrayList<>();
/*When button is clicked*/
button.setOnAction(e -> {
ArrayList<List> "The user's text" = new ArrayList<>();
randomList.add("The user's text");
});
“用户的文本”是用作变量名的用户输入。
附: = 请不要推荐 HashMaps 或 Maps,除非没有其他办法。我已经开始使用 ArrayLists。
【问题讨论】:
-
我很确定您可以使用Reflection API,但是每次您想要访问该变量时都需要使用反射,这将是低效且混乱的。使用地图确实会更好。
-
嗯,您从
ArrayList开始的事实与此无关。 Java 中没有办法将字符串转换为变量名。 Java 不是脚本语言,变量名是在编译时确定的。所以Map是你唯一的选择。 -
“变量名”是什么意思。变量名称仅在源代码中可见,因此在用户输入值时在运行时不可见。因此,恕我直言,您的问题没有多大意义。
-
变量用于表示开发人员可以通过引用其名称来使用的数据或结构。让用户决定变量的名称是没有意义的。主要是因为如果你不知道它的名字就不能参考它:)
-
一个
Map是唯一的出路
标签: java arrays arraylist collections