我在字符串中有方法名称,必须动态调用它。 方法名称。调用(对象,参数) 以上述格式,对象应该是什么? 它应该始终由createNewInstance方法创建吗? 如何使用已经构造好的对象代替它?
答案 0 :(得分:2)
对象应该是什么?
如果方法为static
,则object
参数应为null
。
如果该方法不是static
,则object
参数应该是您要在其上调用该方法的对象,即该对象将是方法内this
的值
是否总是通过createNewInstance方法创建者?
否。
如何使用已构造的对象代替它?
将“已构造的对象”作为object
参数值。
示例
通常,您将调用如下方法:
myObj.foo("bar");
要使用反射进行相同的呼叫:
Method m = myObj.getClass().getMethod("foo", String.class);
m.invoke(myObj, "bar");