Java中的反射

本文详细介绍了Java反射机制的概念,包括如何动态获取类的信息和调用方法。并提供了反射实现的具体步骤,最后阐述了Spring框架中如何运用反射机制来实现IOC容器。

1,什么是反射

Java的反射机制是在运行状态中,对于任意一个类,都能够得到这个类的所有属性和方法;对于任意一个对象,都能够调用他的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能成为Java的反射机制。

2,反射实现的步骤

(1)首先得到class这个类(三种方法)
a,使用class类的forName()方法
b,使用对象的getClass()方法
c,使用.class语法
(2)获取class对象(两种方法)
a,通过无参构造器新建实例

        A a=new A();
        Class c=a.getClass();
        Constructor constructor=c.getConstructor();
        Object o=constructor.newInstance();

b,通过类类型新建类的实例

         A a=new A();
         Class c=a.getClass();
         Object o= c.newInstance();

(3)得到方法和属性(在没有生成调用之前)
a,首先得到类类型
b,得到class类的对象
c,通过class这个类得到Method
d,得到这个方法的实例之后,调用方法的Invoke()方法

    Class c=A.class;
    Object o=c.newInstance();
    Method method=c.getMethod("print",int.class,int.class);
    method.invoke(o,new Integer[]{1,2});

3,反射的使用

Spring 中的 IOC 的底层实现原理就是反射机制,Spring 的容器会帮我们创建实例,该容器中使用的方法就是反射,通过解析xml文件,获取到id属性和class属性里面的内容,利用反射原理创建配置文件里类的实例对象,存入到Spring的bean容器中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值