java_反射

35 阅读1分钟

反射

运行时获取类的结构信息(如构造函数、方法),可以动态的创建对象,调用方法,访问字段等

  • 获取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);