JAVA反射简洁整理

 一.反射:
    反射是一种能力,在程序运行状态中动态获取类信息及调用对象方法的功能为反射
        1.对任意一个类,都能动态的获取到这个类的属性和方法
        2.对任意一个对象,都能动态的调用它的任意属性和方法

二.Class
    Class代表的是所有字节码对象(比如Person.class,Object.class)的抽象,它是一个类(所有的类都继承自Object)
三.类的组成部分有哪些
    1.属性(共有+私有)
    2.方法
    3.构造方法
    4.接口
    5.注解
四.应用
    许多框架背后的实现都采用了反射的机制
    比如@Autowired
    注解的解析程序,来扫描当前包下面有哪些属性加了这个注解,一旦有这个注解,就要去IOC容器里获取对应的类型的实现,然后给属性赋值
五.代码示例

     类

    

public class Student {
    String name;
    private String privateHello(){
        return "privateHello";
    }
    public String publicHello(){
        return "publicHello";
    }

    public Student(String name) {
        this.name = name;
    }
}

反射类

public class Reflection {
    public static void main(String[] args) throws ClassNotFoundException, NoSuchFieldException, NoSuchMethodException {
        Class<?> clazz = Class.forName("main.reflect.Student");
        System.out.println(clazz);
        //获取某个属性
        Field nameField = clazz.getField("name");
        System.out.println(nameField);
        //获取对应私有方法
        Method privateHello = clazz.getDeclaredMethod("privateHello");
        System.out.println(privateHello);
        //获取对应公有方法
        Method publicHello = clazz.getMethod("publicHello");
        System.out.println(publicHello);
        //获取构造函数
        Constructor<?>[] constructors = clazz.getConstructors();
        System.out.println(constructors);
    }
}
六.最后
    Class反射类有众多方法,需要的话Ctrl+左键翻源码探索未知吧

…………

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值