Java 方法。调用它可以接受的参数?

Java 方法。调用它可以接受的参数?,java,reflection,constructor,parameter-passing,illegalargumentexception,Java,Reflection,Constructor,Parameter Passing,Illegalargumentexception,我有字符串形式的方法名,必须动态调用。 方法名.invoke(对象、参数) 在上述格式中,对象应该是什么? 它是否应该始终由createNewInstance方法创建? 如何使用已构造的对象来代替它 对象应该是什么 如果方法是静态,则对象参数应为空 如果方法不是静态的,则对象参数应该是要调用方法的对象,即将成为方法内部的此值的对象 它是否应该始终由createNewInstance方法创建 没有 如何使用已构造的对象来代替它 将“已构造对象”作为对象参数值 范例 通常,您会调用如下方法: my

我有字符串形式的方法名,必须动态调用。 方法名.invoke(对象、参数) 在上述格式中,对象应该是什么? 它是否应该始终由createNewInstance方法创建? 如何使用已构造的对象来代替它

对象应该是什么

如果方法是
静态
,则
对象
参数应为

如果方法不是
静态的
,则
对象
参数应该是要调用方法的对象,即将成为方法内部的
值的对象

它是否应该始终由createNewInstance方法创建

没有

如何使用已构造的对象来代替它

将“已构造对象”作为
对象
参数值


范例

通常,您会调用如下方法:

myObj.foo("bar");
要使用反射进行相同的调用,请执行以下操作:

Method m = myObj.getClass().getMethod("foo", String.class);
m.invoke(myObj, "bar");
对象应该是什么

如果方法是
静态
,则
对象
参数应为

如果方法不是
静态的
,则
对象
参数应该是要调用方法的对象,即将成为方法内部的
值的对象

它是否应该始终由createNewInstance方法创建

没有

如何使用已构造的对象来代替它

将“已构造对象”作为
对象
参数值


范例

通常,您会调用如下方法:

myObj.foo("bar");
要使用反射进行相同的调用,请执行以下操作:

Method m = myObj.getClass().getMethod("foo", String.class);
m.invoke(myObj, "bar");

Java不会根据对象的实例化方式来区分对象。您可以对任何适当类型的对象反射调用方法。Java不会根据对象的实例化方式来区分对象。您可以对任何适当类型的对象反射调用方法。