在使用代理类之前我们必须要要弄清楚什么是代理,代理类,代理类的作用是什么?
代理可以理解为相当于厂家的代理商,比如厂家生产商品,自己不能直接买东西,而是委托代理人(经销商)去买商品。
用下面一个例子来说明什么是代理类和代理类的作用?
比如:
在不知道类x的源代码的情况下,类x 中有sayHello方法,若想测出执行sayHello方法所需的时间。这是就需要一个代理类来完成了。
class x {
void sayHello() {
}
}
class xProxy {
Sytsem.out.println(System.currentTimeMillis();
new x().sayHello();
System.out.println(System.currentTimeMillis();
}
这是xProxy类就是x类的代理类
由此引出一个问题:如果在程序中有好多的x类,是不是要写好多个代理类呢?
是的,理论上应该是这样的,但是在JVM 中提供了创建动态类来实现代理。
1、怎样创建动态类及查看方法列表