Java 是一種強類型語言,因此在編譯期必須確定所有的變量和方法類型。然而有時需要動態(tài)地創(chuàng)建對象或執(zhí)行方法。在這種情況下,使用 Java 映射和反射是一個好的選擇。
// 創(chuàng)建一個 Map 對象 Mapmap = new HashMap<>(); // 添加一個鍵值對 map.put("name", "Alice"); // 獲取鍵值對的值 Object value = map.get("name");
這里我們使用了 Java 映射來創(chuàng)建一個鍵值對對象,并且訪問了它的值。Java 反射可以用于在運行時動態(tài)地操作類和對象。以下是一個示例:
// 獲取一個類對象 Class>clazz = Class.forName("java.util.ArrayList"); // 創(chuàng)建一個對象 Object obj = clazz.newInstance(); // 獲取一個方法對象 Method method = clazz.getMethod("add", Object.class); // 執(zhí)行方法 method.invoke(obj, "hello");
這里我們使用了 Java 反射來獲取 ArrayList 類對象,并且在運行時創(chuàng)建了一個 ArrayList 對象、獲取了 add 方法,并且執(zhí)行了它。這種技術在 Java 中非常有用,例如在創(chuàng)建插件式架構中常常使用反射。