Method setNameMethod = personClass.getMethod("setPerName", String.class);什么意思
时间: 2024-05-20 15:10:37 浏览: 18
这行代码使用Java的反射机制获取了一个名为 "setPerName"、参数类型为 String 的方法对象,并将其赋值给了一个名为 "setNameMethod" 的变量。其中,"personClass" 是一个 Class 对象,代表了一个 Person 类的类信息。这行代码的作用是获取 Person 类中名为 "setPerName" 的方法的方法对象,以便后续进行调用。
相关问题
class.getmethod
`class.getMethod` 是 Java 中的一个反射方法,用于获取指定名称和参数类型的公共方法。它接受两个参数:方法的名称作为字符串和参数类型的 Class 对象数组。如果找到匹配的方法,它将返回一个 `Method` 对象,否则将抛出 `NoSuchMethodException` 异常。
例如,以下代码演示了如何使用 `class.getMethod` 获取 `toString` 方法:
```java
import java.lang.reflect.Method;
public class Main {
public static void main(String[] args) throws NoSuchMethodException {
Class<String> stringClass = String.class;
Method toStringMethod = stringClass.getMethod("toString");
System.out.println(toStringMethod);
}
}
```
输出:
```
public java.lang.String java.lang.Object.toString()
```
请注意,`class.getMethod` 只能获取公共方法,如果要获取私有方法或受保护的方法,可以使用 `class.getDeclaredMethod` 方法。
String m = "m1"; String l = "http"; Mdd mdd = new Mdd(); Class<? extends Mdd> aClass = mdd.getClass(); // Method[] methods = aClass.getMethods(); // for (Method method : methods) { // System.out.println(method.getName()); // System.out.println(method.getReturnType()); // System.out.println(Arrays.toString(method.getParameterTypes())); // } Method method = aClass.getMethod(m,String.class); Class<?> returnType = method.getReturnType(); String simpleName = returnType.getSimpleName(); Object invoke = method.invoke(mdd, l); System.out.println(invoke.getClass()); System.out.println(returnType.cast(invoke).getClass());这段代码的作业
这段代码的作用是通过 Java 反射机制,动态调用 Mdd 类中的指定方法,并获取该方法的返回值类型和返回值。
首先,代码中定义了一个字符串变量 m 和 l,分别表示方法名和方法的参数。接着,创建了一个 Mdd 的实例 mdd,并获取该实例的 Class 对象 aClass。
接下来,通过 aClass 对象的 getMethod 方法获取指定名称和参数类型的方法对象 method。在这里,方法名为 m1,参数类型为 String 类型。
然后,通过 method 对象的 getReturnType 方法获取该方法的返回值类型,并通过 getSimpleName 方法获取返回值类型的类名。
接着,使用 method 对象的 invoke 方法调用 Mdd 实例 mdd 的 m1 方法,并将参数 l 传入。该方法的返回值为 Object 类型,需要通过 cast 方法将其转换为返回值类型。
最后,输出 invoke 对象的类名和 cast 方法转换后对象的类名。
总的来说,该段代码的作用是通过 Java 反射机制,动态调用 Mdd 类中的指定方法,并获取该方法的返回值类型和返回值。