m1.invoke(obj)是什么意思
时间: 2024-04-23 17:28:48 浏览: 93
m1.invoke(obj)是Java语言中的反射方法调用的语法。它表示通过Method对象m1调用对象obj的方法。这种方式可以在运行时动态地调用不同的方法,而不需要提前确定方法的名称。反射机制提供了一种灵活的方式来操作类和对象,可以在运行时动态地获取类的信息,并调用类的方法或访问其属性。在这个特定的例子中,m1代表一个Method对象,invoke()方法表示调用这个Method对象所代表的方法,并传入一个obj对象作为方法的调用者。
相关问题
Method.invoke
Method.invoke()是Java反射机制中的一个方法,可以用于调用指定对象的方法。它的语法格式为:
```java
public Object invoke(Object obj, Object... args) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException
```
其中,obj表示要调用方法的对象,args表示方法参数。这个方法会根据传入的参数自动匹配需要调用的方法,并返回方法执行后的结果。如果方法是静态方法,那么obj可以为null。如果方法没有返回值,则返回null。如果方法抛出异常,则会将异常封装在InvocationTargetException中抛出。
method.invoke
`method.invoke()`是Java中的反射机制方法之一,它可以在运行时动态地调用一个对象的方法。
具体来说,`method`是一个`Method`类的实例,代表一个方法。`invoke()`方法可以传入两个参数:第一个参数是要调用该方法的对象,如果该方法是静态方法,则该参数可以为null;第二个参数是一个可变参数列表,用于传入该方法的参数。
例如,以下代码使用反射机制调用了`MyClass`类中的`add`方法:
```
MyClass obj = new MyClass();
Method method = MyClass.class.getMethod("add", int.class, int.class);
int result = (int) method.invoke(obj, 1, 2);
```
这里,我们首先实例化了`MyClass`类的对象`obj`,然后通过`MyClass.class.getMethod()`方法获取了`add`方法的`Method`实例。最后,我们调用了`method.invoke()`方法,传入`obj`对象和两个int类型的参数1和2,得到了返回值并将其转换为int类型的`result`变量中。
阅读全文