java 基础加强

  • e3_445044
    了解作者
  • 249KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-03-30 22:35
    上传日期
NULL 博文链接:https://fly-sky.iteye.com/blog/865179
java.rar
内容介绍
package cn.com; import java.lang.reflect.Constructor; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflect.Proxy; import java.util.ArrayList; import java.util.Collection; public class ProxyTest { public static void main(String args[]) throws Exception{ Class clazzProxy = Proxy.getProxyClass(Collection.class.getClassLoader(), Collection.class); System.out.println(clazzProxy.getName()); System.out.println("-----begin constuctor------"); Constructor[] constraints = clazzProxy.getConstructors(); for(Constructor constructor : constraints){ String name = constructor.getName(); StringBuffer sBuffer = new StringBuffer(name); sBuffer.append("("); Class[] classParams = constructor.getParameterTypes(); for(Class classparam : classParams){ sBuffer.append(classparam.getName()+" "+ classparam.getName().substring(classparam.getName().lastIndexOf(".")+1, classparam.getName().length()).toString().toLowerCase()).append(','); } if(classParams.length>0){ sBuffer.deleteCharAt(sBuffer.length()-1); } sBuffer.append(")"); System.out.println(sBuffer); } System.out.println("-----begin method------"); Method[] methods = clazzProxy.getMethods(); for(Method method : methods){ String name = method.getName(); StringBuffer sBuffer = new StringBuffer(name); sBuffer.append("("); Class[] classParams = method.getParameterTypes(); for(Class classparam : classParams){ sBuffer.append(classparam.getName()+" "+ classparam.getName().substring(classparam.getName().lastIndexOf(".")+1, classparam.getName().length()).toString().toLowerCase()).append(','); } if(classParams.length>0){ sBuffer.deleteCharAt(sBuffer.length()-1); } sBuffer.append(")"); System.out.println(sBuffer); } System.out.println("-----begin create instance------"); Constructor constructor = clazzProxy.getConstructor(InvocationHandler.class); class MyInvocationHander implements InvocationHandler{ @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { return null; } } Collection proxy1 = (Collection)constructor.newInstance(new MyInvocationHander()); proxy1.clear(); Collection proxy2 = (Collection)constructor.newInstance(new InvocationHandler(){ @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { return null; } }); final ArrayList target = new ArrayList(); Collection proxy3 = (Collection) getProxy(target,new MyAdvice()); proxy3.add("abc"); proxy3.add("xyz"); System.out.println(proxy3.size()); } private static Object getProxy(final Object target,final Advice advice) { Object proxy3 = Proxy.newProxyInstance( target.getClass().getClassLoader(), /* new Class[]{Collection.class},*/ target.getClass().getInterfaces(), new InvocationHandler(){ public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { /*long starttime = System.currentTimeMillis(); Object retVal = method.invoke(target, args); long endtime = System.currentTimeMillis(); System.out.println(method + " 发费时间:" + (endtime - starttime)); return retVal;*/ advice.beforeMethod(); Object retVal = method.invoke(target, args); advice.afterMethod(method); return retVal; } }); return proxy3; } }
评论
    相关推荐
    • CasseBrique:https
      CasseBrique:https
    • plaintextoffenders:https
      纯文字罪犯 向报告的域的公开列表
    • 使用socket post 数据到httphttps
      使用socket post 数据到httphttps
    • nodejs http-server开启https的证书
      https证书文件,nodejs http-server开启https的证书,可以直接在本地启动https的协议,方便部署和使用。
    • http https 切换
      http https切换代码,能够实现网站在传输信息的过程中不易遭人盗取
    • Http2Https-crx插件
      将书签中的http转换为https 害怕用https书签替换旧的http书签? 随着许多网站迁移到https,旧的http书签使星标图像为空。 搜索并转换为https! ****************************************************** ***********...
    • LocomotiveCMS https to http-crx插件
      语言:English 将登录网址从https替换为http以进行开发 此扩展程序供使用机车cms开发应用程序时供个人使用。 为了易于在开发模式下使用,此扩展程序将https登录网址替换为http
    • http:https的镜像
      框架HTTP
    • CookieIsolator:分离 HTTPHTTPS cookie
      松散隔离:HTTP cookie 只能在 HTTP 通道中发送,而 HTTPS cookie 可以在 HTTP(不带安全标志)和 HTTPS 通道中发送。 严格隔离:HTTP cookie 和 HTTPS cookie 只能分别在 HTTPHTTPS 通道中发送。 Ext Secure...
    • https协议
      NULL 博文链接:https://willwen.iteye.com/blog/1988199