用java反射拿到类的方法,用类的方法拿到方法的返回值类型,用invoke调用方法,并将返回值转换为返回值类型
时间: 2024-03-23 22:40:40 浏览: 55
下面是使用 Java 反射拿到类的方法,用类的方法拿到方法的返回值类型,并使用 invoke 调用方法,并将返回值转换为返回值类型的示例代码:
```java
import java.lang.reflect.Method;
public class ReflectionExample {
public static void main(String[] args) throws Exception {
// 获取需要反射的类
Class<?> clazz = SomeClass.class;
// 获取类中的方法
Method method = clazz.getDeclaredMethod("someMethod");
// 获取方法的返回值类型
Class<?> returnType = method.getReturnType();
// 调用方法
Object obj = clazz.newInstance();
Object result = method.invoke(obj);
// 将返回值转换为返回值类型
if (returnType == int.class) {
int intValue = (int) result;
System.out.println("返回值类型是 int,返回值为:" + intValue);
} else if (returnType == String.class) {
String stringValue = (String) result;
System.out.println("返回值类型是 String,返回值为:" + stringValue);
} else {
System.out.println("返回值类型不支持!");
}
}
}
class SomeClass {
public int someMethod() {
return 1;
}
}
```
在上述示例代码中,我们使用 Java 反射获取了 SomeClass 类的 someMethod 方法,并使用 getReturnType 方法获取了方法的返回值类型。接着,我们使用 invoke 方法调用了该方法,并将返回值保存在了 result 对象中。最后,我们根据返回值类型将返回值转换成对应的类型。
阅读全文