Java反射机制允许在运行时动态地创建对象、调用方法和访问属性。通过反射,我们可以实现以下步骤来实现动态调用:
Class<?> clazz = Class.forName("com.example.MyClass");
Object obj = clazz.newInstance();
或者
Object obj = clazz.getDeclaredConstructor().newInstance();
Method method = clazz.getMethod("myMethod", String.class);
或者
Method method = clazz.getDeclaredMethod("myMethod", String.class);
Object result = method.invoke(obj, "parameterValue");
将以上代码整合在一起,实现动态调用的完整示例如下:
import java.lang.reflect.Method;
public class ReflectionDemo {
public static void main(String[] args) {
try {
// 获取Class对象
Class<?> clazz = Class.forName("com.example.MyClass");
// 创建对象
Object obj = clazz.getDeclaredConstructor().newInstance();
// 获取方法
Method method = clazz.getDeclaredMethod("myMethod", String.class);
// 调用方法
Object result = method.invoke(obj, "parameterValue");
System.out.println("Result: " + result);
} catch (Exception e) {
e.printStackTrace();
}
}
}
在这个示例中,我们通过反射机制动态地创建了一个名为MyClass的类的对象,并调用了其名为myMethod的方法。