反射的作用

反射的作用——>实现框架功能

1、框架与框架要解决的核心问题

我做房子卖给用户住,由用户自己安装门窗和空调,我做的房子就是框架,用户需要使用我的框架,把门窗插入到我的框架中。框架与工具类有区别,工具类是被用户调用,而框架是调用用户的类。

2、框架要解决的核心问题

我在写框架(房子)时,你这个用户可能还在上小学,还不会写程序呢?我写的框架程序怎么才能调用到你以后写的类呢?因为在写框架程序时无法知道要被调用的类名,所以在程序中无法直接New某个类的实例对象,而要用反射方式来做。

 

例子,比如在配制文件config.properties中,定义className = java.util.ArrayList ,下面先说加载资源文件的两种方式。

方式一:InputStream ips = new InputStream("config.properties") ;//放在工程目录下

Properties props = new Properties() ;

props.load(ips) ;

props.close() ;

方式二:采用类加载器

当前类名.class.getClassLoader().getResourAsStream("config.properties") ;

也可以直接用 当前类名.class.getResourAsStream("config.properties") ;

//此时资源文件放在当前类文件的同级目录下,很多框架都采用这种方式。

 

 

下面通过反射来得到实例

String className= props.getProperty("className") ;

Collection collections = (Collection)Class.forName(className).newInstance() ;

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值