java反射

2019-08-09 00:00:00 java 反射

java反射

java反射机制

按照百度百科的解释,即:Java反射说的是在运行状态中,对于任何一个类,我们都能够知道这个类有哪些方法和属性。对于任何一个对象,我们都能够对它的方法和属性进行调用。我们把这种动态获取对象信息和调用对象方法的功能称之为反射机制。
《java反射》

public class ReflectTest {

    public static void main(String[] args) throws Exception {
        //反射主要有以下几种方式
        //方式一
        Class aClass=Car.class;

        //方式二
        Class<?> aClass1 = Class.forName("com.rookie.bigdata.reflect.Car");
        //方式三
        ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
        Class<?> aClass2 = contextClassLoader.loadClass("com.rookie.bigdata.reflect.Car");


        Constructor<?> declaredConstructor = aClass2.getDeclaredConstructor();
        Car car = (Car) declaredConstructor.newInstance();

        Method setBrand = aClass2.getMethod("setBrand", String.class);
        setBrand.invoke(car,"宝马");
        Method setColor = aClass2.getMethod("setColor", String.class);
        setColor.invoke(car,"黑色");
        System.out.println(car);


    }

}

Car

public class Car {
    private String brand;
    private String color;

    public String getBrand() {
        return brand;
    }

    public void setBrand(String brand) {
        this.brand = brand;
    }

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    @Override
    public String toString() {
        return "Car{" +
                "brand='" + brand + '\'' +
                ", color='" + color + '\'' +
                '}';
    }
}

反射相关的类
Class: 代表类的实体,在运行的Java应用程序中表示类和接口
Field: 代表类的成员变量(成员变量也称为类的属性)
Method: 代表类的方法
Constructor: 代表类的构造方法
可以参考相关类里面的方法

相关文章