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的方法。