我可以在Java中动态调用该方法吗?

时间:2010-08-05 11:08:00

标签: java

例如,我有一个名为(“method”)的变量,它是一个String,但我想做这样的事情....

obj.method(); //The object called the method();

但我想将.method改为动态方法,这意味着,我想基于变量调用方法。例如,如果我做了这样的事情:

method = ".toString()";

是否有任何方法可以帮助我将此字符串传递给对象,对象将调用

obj.toString();

如果方法是

method = ".toChar()";

我希望它叫做

obj.toChar();

我该怎么办?谢谢。

2 个答案:

答案 0 :(得分:5)

您可以使用反射API。在你的情况下,它将是这样的:

String method = "toString";
Class<Obj> objClass = obj.getClass();
Method m = objClass.getMethod(method);
m.invoke(obj);

它未经测试但应该可以使用。否则只需在文档中阅读一下。

请注意,这通常是(但并非总是)用Java做错事的方法。

答案 1 :(得分:0)

反思就是这样。这是你的starting poin t。

您可以参考教程here