java反射学习笔记2

反射的基本操作原理

反射开发模式,重点:

java.lang.Class<T>

实例化对象有三种方式完成:

1、Object类之中存在有一个getClass()方法:public final Class<?> getClass();
此方法不能被子类所覆写,且所有类的实例化对象都可以调用;
2、利用“package.class.class”的形式实例化Class类对象
在一些开源框架中大量使用到
操作直观,直接
3、利用Class类中提供的public static Class<?>forName(String)
主要用于工厂类上,设计JDBC程序驱动加载
特点:程序没有很强烈的严谨性,只要程序不运行,就不会出现任何错误,要运行,就把指定的类设置上。
在Class类中提供一个实例化对象的方法 newInstance() throws
 实例化异常,Instantiation
 没有无参数构造,类名错误
 错误访问异常, IllegalAccess
 构造方法私有化
反射实例化对象

 newInstance() 只能调用无参数的构造方法,相当于使用new创建的实例对象

使用关键字new实例化对象以及反射实例化对象有什么区别?

若现在只是一个单纯的类进行对象的实例化,非要区别
采用反射进行实例化,灵活性更高,比new 获取 宽松
若现在是一个子类需要为父接口进行对象实例化,那么弱使用了关键字new,会造成接口耦合问题,因一个接口在使用中就与固定的一个子类进行了绑定。
最早的解耦和,利用工程模式,为了一个工厂类可以使用所有接口子类的扩展需求,则可以利用反射完成
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值