Java 的反射機制是什么?主要應用在哪些場景?
Java的反射機制是指程序在運行時,能夠獲取自身類的信息(如類名、屬性、方法、構造器等),并動態操作這些信息的能力。正常情況下,Java代碼編譯時類型已確定,而反射打破了這種編譯期約束,讓程序在運行時靈活操作類和對象。
反射的實現依賴于java.lang.reflect包中的類,核心包括:Class類(代表類的字節碼對象,通過Class.forName()、對象.getClass()或類名.class獲取);Constructor類(用于獲取和調用構造器,創建對象);Method類(獲取和調用方法,包括私有方法);Field類(獲取和修改屬性,包括私有屬性)。例如,通過反射調用私有方法:
public class ReflectDemo {private void privateMethod() {System.out.println("調用私有方法");}public static void main(String[] args) throws Exception {Class<?> clazz = ReflectDemo.class;Object obj = clazz.newInstance();Method method = clazz.getDeclaredMetho