【Java基础总结】-反射机制与代理机制

反射

获得对应的Class对象,以及创建其实例

三种获取对应Class对象的方法
①通过实例对象获取对应类的类对象

e.getClass();

② 通过定义一个字符串类名,获取一个类对象

String str = "java.util.date";  
Class.forName(str);

③通过类名获取类对象

Employee.class  

通过获得的Class对象,调用其newInstance()方法创建其实例

AClass.newInstance();

利用反射分析类的能力

分析一个类的能力从三方面入手,其域、方法和构造器。反射java.util.reflact包中有这三方面相关的获取方法,可以得知一个类实际的类能力。

  • Field 域
  • Method 方法
  • Constructor 构造器

在运行时使用反射分析类

在运行时,可以通过类属性获得某个指定的实例对象

使用反射编写泛型数组代码

反射机制允许你调用任意方法

允许调用包装在当前Method对象中的方法

比如:m1代表Employee类的getName方法
Method m1 = Employee.class.getMethod(“getName”,String.class);
String n = (String)m1.invoke(harry);

总结

反射机制使得人们可以通过在运行时查看域和方法,让人们编写出更具体有通用性的程序。这种功能对于编写系统程序来说极其实用。


代理

利用代理可以在运行时创建一个实现了一组给定接口的心类,这种功能只有在编译时 无法确定需要实现哪个接口时,才有必要使用。
无论何时调用代理对象的方法,调用处理器的invoke方法都会被调用。并向其传递Method对象和原始的调用参数。

代理的作用是:为其它对象提供一种代理以控制对这个对象的访问。在某些情况下,一 个客户不想直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介作用。通过代理类这一中间层,能够有效控制对实际委托类对象的直接访问,也可以很好地隐藏和 保护实际对象,实施不同的控制策略,从而在设计上获得了更大的灵活性。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值