当前位置:网站首页 > Java基础 > 正文

java反射 菜鸟教程

 import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Constructor;

public class ReflectionExample {

    public static void main(String[] args) throws Exception {
        // 获取 Class 对象
        Class<?> clazz = Car.class;

        // 创建 Car 对象
        Constructor<?> constructor = clazz.getConstructor(String.class, int.class);
        Object car = constructor.newInstance("Toyota", 2020);

        // 访问和修改字段
        Field modelField = clazz.getDeclaredField("model");
        Field yearField = clazz.getDeclaredField("year");
       
        // 设置字段为可访问(如果字段是私有的)
        modelField.setAccessible(true);
        yearField.setAccessible(true);
       
        // 打印原始字段值
        System.out.println("Original Model: " + modelField.get(car));
        System.out.println("Original Year: " + yearField.get(car));
       
        // 修改字段值
        modelField.set(car, "Honda");
        yearField.set(car, 2024);
       
        // 打印修改后的字段值
        System.out.println("Updated Model: " + modelField.get(car));
        System.out.println("Updated Year: " + yearField.get(car));
       
        // 调用方法
        Method startMethod = clazz.getMethod("start");
        startMethod.invoke(car);
    }
}

class Car {
    private String model;
    private int year;

    public Car(String model, int year) {
        this.model = model;
        this.year = year;
    }

    public void start() {
        System.out.println("The " + model + " car of year " + year + " is starting.");
    }
}




















































版权声明


相关文章:

  • java键盘视频教程2026-01-30 21:50:00
  • java私有变量教程2026-01-30 21:50:00
  • java中单链表教程2026-01-30 21:50:00
  • java struts2教程2026-01-30 21:50:00
  • java脚本运行教程2026-01-30 21:50:00
  • vs code java使用教程2026-01-30 21:50:00
  • java 教程文档2026-01-30 21:50:00
  • java封装sdk教程2026-01-30 21:50:00
  • mc红石教程java2026-01-30 21:50:00
  • java实例化教程2026-01-30 21:50:00