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

标志在线设计网站虚拟主机网站建设过程

标志在线设计网站,虚拟主机网站建设过程,wordpress建站平台,相亲网站男人拉我做外汇一、概述 1.目标#xff1a;把Proxy修改成可以代理任意接口及其任意方法 2.思路#xff1a; (1)代理任意接口#xff1a;把接口类型作为参数传给Proxy的newProxyInstance(Class interfze) (2)代理任意方法#xff1a;用interfze.getMethods()取出所有方法#xff0c;拼接实…一、概述 1.目标把Proxy修改成可以代理任意接口及其任意方法 2.思路 (1)代理任意接口把接口类型作为参数传给Proxy的newProxyInstance(Class interfze) (2)代理任意方法用interfze.getMethods()取出所有方法拼接实现方法的字符串   二、代码 1.Movable.java 2.Tank.java 3.Proxy.java 4.Client.java   1.Movable.java 1 package proxy; 2 3 public interface Movable { 4 public void move(); 5 public void stop(); 6 }   2.Tank.java 1 package proxy;2 3 import java.util.Random;4 5 public class Tank implements Movable {6 7 Override8 public void move() {9 System.out.println(Tank moving.......); 10 try { 11 Thread.sleep(new Random().nextInt(2000)); 12 } catch (InterruptedException e) { 13 e.printStackTrace(); 14 } 15 } 16 17 Override 18 public void stop() { 19 System.out.println(Tank stopping.......); 20 21 } 22 23 }   3.Proxy.java 1 package proxy;2 3 import java.io.File;4 import java.io.FileWriter;5 import java.lang.reflect.Constructor;6 import java.lang.reflect.Method;7 import java.net.URL;8 import java.net.URLClassLoader;9 10 import javax.tools.JavaCompiler; 11 import javax.tools.JavaCompiler.CompilationTask; 12 import javax.tools.StandardJavaFileManager; 13 import javax.tools.ToolProvider; 14 15 public class Proxy { 16 17 public static Object newProxyInstance(Class interfze) throws Exception { 18 19 String rt \n\r; 20 21 //拼接实现接口方法的字符串 22 String methodStr ; 23 for(Method m: interfze.getMethods() ){ 24 25 //取出方法的修饰符和返回值类型 26 String [] parts m.toString().replace(abstract , ).split(\\.); 27 String [] parts2 parts[0].split( ); 28 29 methodStr 30 Override rt 31 parts2[0] parts2[1] m.getName()() { rt 32 System.out.println(\Time Proxy start...........\); rt 33 long start System.currentTimeMillis(); rt 34 m. m.getName() (); rt 35 long end System.currentTimeMillis(); rt 36 System.out.println(\花费时间\(end - start)); rt 37 System.out.println(\Time Proxy end...........\); rt 38 } ; 39 } 40 41 42 //动态代理文件的源码 43 String str 44 package proxy; rt 45 46 public class TankTimeProxy implements interfze.getName() {rt 47 48 private interfze.getName() m; rt 49 50 public TankTimeProxy( interfze.getName() m) { rt 51 this.m m; rt 52 } rt 53 54 methodStr rt 55 56 } ; 57 58 //把源码写到java文件里 59 File file new File(System.getProperty(user.dir)/src/proxy/TankTimeProxy.java); 60 FileWriter fw new FileWriter(file); 61 fw.write(str); 62 fw.flush(); 63 fw.close(); 64 65 //编译源码生成class,注意编译环境要换成jdk才有compiler,单纯的jre没有compiler会空指针错误 66 JavaCompiler jc ToolProvider.getSystemJavaCompiler(); 67 68 //文件管事器 69 StandardJavaFileManager fileMgr jc.getStandardFileManager(null, null, null); 70 71 //编译单元 72 Iterable units fileMgr.getJavaFileObjects(file); 73 74 //编译任务 75 CompilationTask t jc.getTask(null, fileMgr, null, null, null, units); 76 77 //编译 78 t.call(); 79 fileMgr.close(); 80 81 //把类load到内存里 82 URL[] urls new URL[] {new URL(file:/System.getProperty(user.dir)/src/proxy/TankTimeProxy.class)}; 83 URLClassLoader uc new URLClassLoader(urls); 84 Class c uc.loadClass(proxy.TankTimeProxy); 85 86 //生成实例 87 //return c.newInstance(); //c.newInstance()会调用无参数的Construtor若类没有无参的Constructor时会出错 88 Constructor ctr c.getConstructor(interfze); 89 return ctr.newInstance(new Tank()); 90 } 91 }   4.Client.java 1 package proxy;2 3 import java.io.IOException;4 5 import org.junit.Test;6 7 public class Client {8 9 Test 10 public void testProxy() throws Exception{ 11 12 Movable m (Movable)Proxy.newProxyInstance(Movable.class); 13 m.move(); 14 m.stop(); 15 16 } 17 }   三、运行结果 转载于:https://www.cnblogs.com/shamgod/p/4592359.html
http://www.yutouwan.com/news/412387/

相关文章:

  • 做营销网站应该要注意些什么网站建设与管理试卷及答案
  • 电子商务网站界面设计四川和住房城乡建设厅网站首页
  • 网站建设分录怎么开专门做头像的网站
  • 个人网站备案名称填写的注意事项django类似wordpress
  • 东莞长安网站优化郑州app网站公司
  • 南宁网站建设是什么意思浙江建设信息港特种作业证书查询
  • 南宁网站推广策略动态发布网站和静态发布网站
  • 公司做网站需要注意什么网站海外推广方法
  • 有没有做图的网站php手机编程软件
  • 单网页网站扒站工具asp代码如何修改asp网站网页域名名称
  • 做查询快递单号的网站多少钱上海十大互联网公司
  • html5小游戏源码优化
  • 技术支持保定网站建设 定兴做一个国外的网站
  • 简单的网站代码网站栏目分类
  • 河南建设教育中心网站做轻奢品的电商网站
  • 做网站是不是也是暴利成都网络优化公司排行榜
  • 佛山企业网站建设服务兰州建设一个网站多少钱
  • 金融理财网站源码网站页面布局的目的
  • wordpress 移动站wordpress 分类缩略图
  • 网站和app的优缺点如何实现一个制作好的网站
  • 可以直接进入网站的正能量网站做网站最快多久
  • 网站建设与运营的论文的范本河北邯郸网站制作
  • 西安哪家做网站公司好ci框架的网站
  • 做电影网站涉及的侵权问题什么网站有做面条的app
  • 备案期间网站怎么关闭最近的新闻事件
  • 做网站一次付费网址大全100个
  • 大连建设网站便民服务app外包后期怎么维护
  • 手机作网站服务器金融理财网站建设方案
  • 一男一女做那个的动漫视频网站企业网站建设到底应该注意什么
  • 广州网站建设 易企建站继续教育培训网站开发