例如,我有一个名为(“method”)的变量,它是一个String,但我想做这样的事情....
obj.method(); //The object called the method();
但我想将.method改为动态方法,这意味着,我想基于变量调用方法。例如,如果我做了这样的事情:
method = ".toString()";
是否有任何方法可以帮助我将此字符串传递给对象,对象将调用
obj.toString();
如果方法是
method = ".toChar()";
我希望它叫做
obj.toChar();
我该怎么办?谢谢。
答案 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。