浅谈java反射机制

1.之前学习spring框架的时候老师说spring Ioc的底层原理是反射,一直是一知半解,看来这位博主的讲解,稍有感触并简单总结了一下.
2.什么是java反射机制
正常在java开发中调用对象的方法和属性需要先导入类所在的包,然后new一个对象,再通过对象.属性或者方法实现,反射则是先得到class对象,然后实例化对象,反射的源头就是class类,文档中的描述是:
public final class Class
extends Object
implements Serializable, GenericDeclaration, Type, AnnotatedElement
3.怎么运用反射(3种方式)
3.1,Object提供一个返回class的方法.getCalss():
Cat cat=new Cat();
Class class=cat.getClass();//有对象了反射犹如鸡肋
3.2.类.class
Class class=Cat.class;//需要导包
3.3.利用Class类的Static方法取得
public static Class<?> forName(String className)
throws ClassNotFoundException

Class class=Class.forName(String string);
string为真实路径,就是带包名的类路径,包名.类名
4.获取了class,想要达到什么目的?
动态调用类的属性和方法,详细可阅读原博文:https://blog.csdn.net/sinat_38259539/article/details/71799078
5.spring IOC和反射
spring ioc控制反转,简单的理解是我们不用去new一个对象,只是告诉BeanFactory容器我们需要什么对象,用工厂的方式,给出一个个实例,而在工厂里面,用了单例,但是真正实例化,则是反射的newInstance来创建对象,好处就是高内聚,低耦合,怎么实现呢?
String className = readfromXMlConfig;//从xml 配置文件中获得字符串

Class c = Class.forName(className);

factory = (AInterface)c.newInstance();

理解不深,有误之处烦请指教

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值