Java反射機制允許在運行時動態(tài)地創(chuàng)建對象、調(diào)用方法和訪問屬性。通過反射,我們可以實現(xiàn)以下步驟來實現(xiàn)動態(tài)調(diào)用:
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");
將以上代碼整合在一起,實現(xiàn)動態(tài)調(diào)用的完整示例如下:
import java.lang.reflect.Method;
public class ReflectionDemo {
public static void main(String[] args) {
try {
// 獲取Class對象
Class<?> clazz = Class.forName("com.example.MyClass");
// 創(chuàng)建對象
Object obj = clazz.getDeclaredConstructor().newInstance();
// 獲取方法
Method method = clazz.getDeclaredMethod("myMethod", String.class);
// 調(diào)用方法
Object result = method.invoke(obj, "parameterValue");
System.out.println("Result: " + result);
} catch (Exception e) {
e.printStackTrace();
}
}
}
在這個示例中,我們通過反射機制動態(tài)地創(chuàng)建了一個名為MyClass的類的對象,并調(diào)用了其名為myMethod的方法。