当前位置: 首页 > news >正文

网站建设宣传语建设厅安全员证

网站建设宣传语,建设厅安全员证,线上h5是什么意思,文字logo设计生成器我们可以分成三步来完成jdk动态代理的实现 第一步:创建目标对象 第二步:创建代理对象 第三步:调用代理对象的代理方法 public class Client {public static void main(String[] args) {//创建目标对象final OrderService target new OrderS…

我们可以分成三步来完成jdk动态代理的实现
第一步:创建目标对象
第二步:创建代理对象
第三步:调用代理对象的代理方法

public class Client {public static void main(String[] args) {//创建目标对象final OrderService target = new OrderServiceImpl();//创建代理对象OrderService proxyObj =(OrderService) Proxy.newProxyInstance(target.getClass().getClassLoader(), target.getClass().getInterfaces(), new TImerInvocationHandler(target)); /*{//参数1:Object proxy, 代理对象的引用// 参数2:Method method, 目标对象上的目标方法// 参数3:Object[] args ,目标方法上的实参*//*    @Overridepublic Object invoke(Object proxy, Method method, Object[] args) throws Throwable {//这个接口的目的就是为了让你有地方写增强代码//并且,当调用代理对象的代理方法的时候,此方法才会被jdk调用。System.out.println("增强1");//  method.invoke(target,args );target.generate();System.out.println("增强2");return null;}}*//*);*///调用代理对象的代理方法proxyObj.generate();proxyObj.detail();proxyObj.modify();}}

创建代理对象时,我们传入的第三个参数就是实现InvocationHandler接口的实现类,重写invoke方法,就是让我们写增强功能的地方,代码如下:

public class TImerInvocationHandler implements InvocationHandler {private final OrderService target;public TImerInvocationHandler(OrderService target) {this.target = target;}//参数1:Object proxy, 代理对象的引用// 参数2:Method method, 目标对象上的目标方法// 参数3:Object[] args ,目标方法上的实参@Overridepublic Object invoke(Object proxy, Method method, Object[] args) throws Throwable {//这个接口的目的就是为了让你有地方写增强代码//并且,当调用代理对象的代理方法的时候,此方法才会被jdk调用。long begin = System.currentTimeMillis();Object retvalue = method.invoke(target, args);long end = System.currentTimeMillis();System.out.println("耗时"+(end-begin)+"毫秒");//返回值。这样才能保证目标方法中有返回值的方法在代理对象调用方法时可以拿到返回的值return retvalue;}
}

在上述操作之前先创建相关类和接口,下方为简单示例:

//公共接口
public interface OrderService {void generate();void modify();void detail();
}
//实现类
public class OrderServiceImpl implements OrderService {@Overridepublic void generate() {try {Thread.sleep(456);}catch (InterruptedException e){e.printStackTrace();}System.out.println("订单已生成");}@Overridepublic void modify() {try {Thread.sleep(666);}catch (InterruptedException e){e.printStackTrace();}System.out.println("订单已修改");}@Overridepublic void detail() {try {Thread.sleep(1000);}catch (InterruptedException e){e.printStackTrace();}System.out.println("订单详情");}
}
http://www.yayakq.cn/news/199772/

相关文章:

  • 专注高密做网站哪家强怎么投诉没有备案就已经运营网站
  • 爱站工具包官网网站做专题
  • 网站备案怎么转入深圳教育集团网站建设
  • 做一元购物网站中学网站建设方案
  • 个人商城网站备案做微商网站设计
  • 网站设计字体大小规范最精品网站建设
  • 河间网站建设推广企业网站建设维护
  • 淄博网站设上海天华设计有限公司
  • wordpress syntaxhighlighter天津百度seo
  • 公司网站域名cn和com昆明seo网站管理
  • 酒店电子商务网站策划书如何向百度提交自己的网站
  • 网站怎么做接口重庆微信企业网站
  • 上海网站建设咨询站霸网络四川省建设厅官方网站上面查
  • 深圳做网站的公长宁区网站制作
  • vs做网站开发吗wap网站为什么没有了
  • 怎么检查网站的死链注册安全工程师报名时间2022官网
  • 佛山网站设计特色wordpress跳转到微信支付
  • 免费高清图片素材网站推荐建设部住房城乡建设厅网站
  • 注册网站名字网站头图设计
  • 专业网站设计企业互联网行业前沿资讯
  • 做视频的网站wordpress主题评论制作
  • 个人网站备案方法做网站程序
  • 网站做点线表格网络营销措施有哪些
  • 张家港手机网站制作大连网站建设1000元
  • 做网站需要的合同建行网站登录不了
  • 网站设计流程步骤广州市天河区
  • gta5房产网站正在建设网站建设包括哪些内容
  • 网站开发价格预算网站开发所需的技术
  • 连云港建设工程质量监督站网站wordpress-5.0升级未被安装
  • 网站做数据分析的意义项目计划书怎么写