有没有办法将String与方法匹配?

时间:2016-04-23 23:07:12

标签: java string

据我研究过,没有办法将String与变量匹配。可能我用了错误的词,这就是我的意思:匹配:
    字符串等级=“a”;
    double a = 4.0;
并且没有办法将String等级的值与double a相关联。

同样,我想要做的是将String的值与方法相关联。也许我走错了路,让我简单解释一下我想要实现的目标:
在类播放器中,有一个返回This.name的String name()方法。没有图形设计,用户与程序通信的唯一方法是打字。基本上,当人类型名称时,我想要名称方法运行。我很新,我能想到的唯一方法是使用一堆if语句,并为我添加的每个方法添加另一个if语句对我来说听起来不对。

注意:我需要关联String的原因是因为我将使用javax.swing.JTextArea来获取用户的输入,该用户返回String。

提前致谢

3 个答案:

答案 0 :(得分:0)

Java不是像Python或Perl这样的动态解释语言。

要将任意字符串与值相关联,您应使用Map<String,ValueClass>,其中ValueClass是要关联的值,例如IntegerFloatBigDecimal或你自己的价值观。

答案 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()