运行时获取类的结构信息(如构造函数、方法),可以动态的创建对象,调用方法,访问字段等
-
获取class对象
Class<?> clazz = Class.forName("com.mianshiya.MyClass"); Class<?> clazz = MyClass.class; Class<?> clazz = obj.getClass();
-
创建对象
Constructor<?> constructor = clazz.getConstructor(); Object obj = constructor.newInstance();
-
调用方法
Method method = clazz.getMethod("say", String.class); Object result = method.invoke(obj, "params");
-
访问对象
Field field = clazz.getField("myField"); field.setAccessible(true); // 允许访问 private 字段 Object value = field.get(obj); field.set(obj, newValue);