没有合适的资源?快使用搜索试试~ 我知道了~
因为动态代理的过程中,我们并没有实际看到代理类,也没有很清晰地的看到代理类的具体样子,而且动态代理中被代理对象和代理对象是通过InvocationHandler
资源详情
资源评论
资源推荐
动态代理
创建 InvocationHandler 对象
//创建一个与代理对象相关联的 InvocationHandler
InvocationHandler stuHandler = new MyInvocationHandler<Person>(stu);
//创建一个代理对象 stuProxy,代理对象的每个执行方法都会替换执行 Invocation 中的 invoke 方
法
Person stuProxy= (Person)
Proxy.newProxyInstance(Person.class.getClassLoader(), new
Class<?>[]{Person.class}, stuHandler);
动态代理例子
班长帮学生交学费给老师
1.创建公共类接口 Person
public interface Person {
//上交班费
void giveMoney();
}
2.创建需要被代理的类
public class Student implements Person {
private String name;
public Student(String name) {
this.name = name;
}
@Override
public void giveMoney() {
try {
//假设数钱花了一秒时间
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(name + "上交班费 50 元");
}
}
3. 再定义一个检测方法执行时间的工具类,在任何方法执行前先调用 start
方法,执行后调用 finsh 方法,就可以计算出该方法的运行时间,这也是一个
最简单的方法执行时间检测工具。
基鑫阁
- 粉丝: 58
- 资源: 358
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0