现有不同的类,类里方法不同,如何简洁代码实现通过类中的一个动态参数,获取动态类从而调用动态方法
时间: 2023-03-28 08:03:31 浏览: 77
C#动态调用类方法
3星 · 编辑精心推荐
可以使用反射机制来实现。首先,获取动态类的 Class 对象,然后通过 Class 对象的 newInstance() 方法创建动态类的实例,最后通过 Method 对象的 invoke() 方法调用动态方法。具体实现可以参考以下代码:
```
public static void invokeDynamicMethod(Object obj, String methodName, Object... args) throws Exception {
Class<?> clazz = obj.getClass();
Method method = clazz.getMethod(methodName, getParameterTypes(args));
method.invoke(obj, args);
}
private static Class<?>[] getParameterTypes(Object... args) {
Class<?>[] parameterTypes = new Class<?>[args.length];
for (int i = ; i < args.length; i++) {
parameterTypes[i] = args[i].getClass();
}
return parameterTypes;
}
```
其中,invokeDynamicMethod() 方法接收三个参数:动态类的实例、动态方法的名称和动态方法的参数。getParameterTypes() 方法用于获取动态方法的参数类型。
阅读全文