据我研究过,没有办法将String与变量匹配。可能我用了错误的词,这就是我的意思:匹配:
字符串等级=“a”;
double a = 4.0;
并且没有办法将String等级的值与double a相关联。
同样,我想要做的是将String的值与方法相关联。也许我走错了路,让我简单解释一下我想要实现的目标:
在类播放器中,有一个返回This.name的String name()方法。没有图形设计,用户与程序通信的唯一方法是打字。基本上,当人类型名称时,我想要名称方法运行。我很新,我能想到的唯一方法是使用一堆if语句,并为我添加的每个方法添加另一个if语句对我来说听起来不对。
注意:我需要关联String的原因是因为我将使用javax.swing.JTextArea来获取用户的输入,该用户返回String。
提前致谢
答案 0 :(得分:0)
Java不是像Python或Perl这样的动态解释语言。
要将任意字符串与值相关联,您应使用Map<String,ValueClass>
,其中ValueClass
是要关联的值,例如Integer
,Float
,BigDecimal
或你自己的价值观。
答案 1 :(得分:0)
是。它被称为Map
。
以下是一些如何使用的示例代码:
Map<String, Double> map = new HashMap<>();
map.put("grade", 4.0);
double a = map.get("grade");
如果要存储各种值类型,请使用Map<String, Object>
,但在检索和使用从get()
返回的值时,您必须进行不安全的转换。
答案 2 :(得分:0)
由于成绩通常是从A到F固定的,我会使用enum
地图将每个成绩转换为数值:
enum Grade {
A(4.0), B(3.0) // etc...
private double val;
private Grade(double val) {
this.val = val;
}
public double getVal() {
return val;
}
}
当您需要A等级的数值时,请使用Grade.A.getVal()
。