如果我将方法名称存储在2D数组中作为String,我是否可以使用该String来调用所述方法?

时间:2015-03-10 03:19:42

标签: java arrays string

我正在尝试编写一个程序来帮助我计算某些烹饪测量的转换。我确信有更简单的方法可以解决这个问题,但这是我迄今为止所做的:

public void sort(String[] s)
{
    for (int i = 0; i < s.length; i++)
        s[i] = s[i].toLowerCase();

    try
    {
        if (s[0].equals("metric"))
        {
            for (int i = 0; i < metric.length; i++)
            {
                if (s[1].equals(metric[i]))
                {
                    metric[i][1]();
                }
            }

        } else if (s[0].equals("imperial"))
        {

        }
    } catch (IllegalArgumentException e)
    {
        System.out.println(e);
        System.out.print(errorMessage);
    }
}

是一个数组,包含有关用户转换内容,转换内容和内容的信息。我还制作了两个2D数组,其中包含每个第一维元素的测量值,以及随之而来的相应方法名称。我想要做的是从2d数组中提取该方法名称,从而调用该方法。例如,表示metric [i] 1的行;应该调用在metric [i] [1]中存储方法名称的内容。如果可能的话,我该怎么做呢?如果这个问题令人困惑,也很抱歉,如果您有关于如何更直观地编写程序的意见,我将不胜感激。

1 个答案:

答案 0 :(得分:0)

是的,如果你知道,并且可以访问该课程......

以下是如何按名称运行方法的示例(让selectedClass成为其所在的类):

Method theMethod = selectedClass.getClass().getMethod("methodName", null);
theMethod.invoke(selectedClass, null);