最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java 創(chuàng)建動(dòng)態(tài)類(lèi)和查看方法列表信息的實(shí)例

 更新時(shí)間:2017年06月09日 08:31:48   投稿:lqh  
這篇文章主要介紹了 Java 創(chuàng)建動(dòng)態(tài)類(lèi)和查看方法列表信息的實(shí)例的相關(guān)資料,需要的朋友可以參考下

 Java 創(chuàng)建動(dòng)態(tài)類(lèi)和查看方法列表信息的實(shí)例

Sample code :

import java.lang.reflect.Constructor; 
import java.lang.reflect.InvocationHandler; 
import java.lang.reflect.Method; 
import java.lang.reflect.Proxy; 
import java.lang.reflect.Type; 
import java.util.ArrayList; 
import java.util.Collection; 
 
public class ProxyTest { 
 
  public static void main(String[] args) throws Exception { 
    // TODO Auto-generated method stub 
    Class clazzProxy = Proxy.getProxyClass(Collection.class.getClassLoader(), Collection.class); 
    System.out.println(clazzProxy); 
    System.out.println("------constructor method list ------"); 
    Constructor[] constructors = clazzProxy.getConstructors(); 
    for(Constructor constructor:constructors){ 
      StringBuilder sb = new StringBuilder(constructor.getName()); 
      sb.append("("); 
      Type[] parameterTypes = constructor.getParameterTypes(); 
      for(Type parameterType:parameterTypes){ 
        sb.append(parameterType.toString()+","); 
      } 
      if(parameterTypes.length>0){ 
        sb.deleteCharAt(sb.length()-1); 
      } 
      sb.append(")"); 
      System.out.println(sb.toString()); 
       
    } 
    System.out.println("------constructor method list ------\n\n"); 
     
    System.out.println("------ method list ------"); 
    Method[] methods = clazzProxy.getMethods(); 
    for(Method method:methods){ 
      StringBuilder sb2 = new StringBuilder(method.getName()); 
      sb2.append("("); 
      Type[] parameterTypes = method.getParameterTypes(); 
      for(Type parameterType:parameterTypes){ 
        sb2.append(parameterType.toString()+","); 
      } 
      if(parameterTypes.length>0){ 
        sb2.deleteCharAt(sb2.length()-1); 
      } 
      sb2.append(")"); 
      System.out.println(sb2.toString()); 
       
    } 
    System.out.println("------ method list ------"); 
     
    Constructor proxyConstructor = clazzProxy.getConstructor(InvocationHandler.class); 
    class MyInvocationHandler implements InvocationHandler{ 
      ArrayList target = new ArrayList(); 
      public Object invoke(Object proxy, Method method, Object[] args) 
          throws Throwable { 
        Object obj = method.invoke(target, args); 
        return obj; 
      } 
       
    } 
    MyInvocationHandler mih = new MyInvocationHandler(); 
    Collection collectionProxy = (Collection) proxyConstructor.newInstance(mih); 
    collectionProxy.add("zhuang"); 
    collectionProxy.add("alex"); 
    System.out.println("collectionProxy size:"+collectionProxy.size()); 
     
    Collection collectionProxy2 = (Collection)Proxy.newProxyInstance(Collection.class.getClassLoader(),new Class[] {Collection.class},new InvocationHandler(){ 
      ArrayList target = new ArrayList(); 
      public Object invoke(Object proxy, Method method, Object[] args) 
          throws Throwable { 
        Object obj = method.invoke(target, args); 
        return obj; 
      } 
    }); 
     
    collectionProxy2.add("one"); 
    collectionProxy2.add("two"); 
    collectionProxy2.add("three"); 
    System.out.println("collectionProxy2 size:"+collectionProxy2.size()); 
  } 

運(yùn)行結(jié)果:

class $Proxy0
------constructor method list ------
$Proxy0(interface Java.lang.reflect.InvocationHandler)
------constructor method list ------


------ method list ------
add(class java.lang.Object)
hashCode()
equals(class java.lang.Object)
clear()
toString()
contains(class java.lang.Object)
isEmpty()
addAll(interface java.util.Collection)
iterator()
size()
toArray(class [Ljava.lang.Object;)
toArray()
remove(class java.lang.Object)
containsAll(interface java.util.Collection)
removeAll(interface java.util.Collection)
retainAll(interface java.util.Collection)
isProxyClass(class java.lang.Class)
getProxyClass(class java.lang.ClassLoader,class [Ljava.lang.Class;)
newProxyInstance(class java.lang.ClassLoader,class [Ljava.lang.Class;,interface java.lang.reflect.InvocationHandler)
getInvocationHandler(class java.lang.Object)
wait()
wait(long,int)
wait(long)
getClass()
notify()
notifyAll()
------ method list ------
collectionProxy size:2
collectionProxy2 size:3


感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

  • Java中Swagger框架的使用詳解

    Java中Swagger框架的使用詳解

    這篇文章主要介紹了Java框架Swagger的使用詳解,在開(kāi)發(fā)期間接口會(huì)因業(yè)務(wù)的變更頻繁而變動(dòng),如果需要實(shí)時(shí)更新接口文檔,這是一個(gè)費(fèi)時(shí)費(fèi)力的工作,Swagger應(yīng)運(yùn)而生,他可以輕松的整合進(jìn)框架并通過(guò)一系列注解生成強(qiáng)大的API文檔,需要的朋友可以參考下
    2023-08-08
  • 解決引用slf4j中Logger.info只打印出文字沒(méi)有數(shù)據(jù)的問(wèn)題

    解決引用slf4j中Logger.info只打印出文字沒(méi)有數(shù)據(jù)的問(wèn)題

    這篇文章主要介紹了解決引用slf4j中Logger.info只打印出文字沒(méi)有數(shù)據(jù)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • feignclient?https?接口調(diào)用報(bào)證書(shū)錯(cuò)誤的解決方案

    feignclient?https?接口調(diào)用報(bào)證書(shū)錯(cuò)誤的解決方案

    這篇文章主要介紹了feignclient?https?接口調(diào)用報(bào)證書(shū)錯(cuò)誤的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • 一篇文章帶你了解Java SpringBoot四大核心組件

    一篇文章帶你了解Java SpringBoot四大核心組件

    這篇文章主要介紹了SpringBoot四大核心組件的使用小結(jié),詳細(xì)的介紹了這方面的知識(shí),有興趣的可以了解一下,希望能夠給你帶來(lái)幫助
    2021-09-09
  • springmvc實(shí)現(xiàn)文件上傳功能

    springmvc實(shí)現(xiàn)文件上傳功能

    這篇文章主要為大家詳細(xì)介紹了springmvc實(shí)現(xiàn)文件上傳功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-03-03
  • spring boot 監(jiān)控處理方案實(shí)例詳解

    spring boot 監(jiān)控處理方案實(shí)例詳解

    這篇文章主要介紹了spring boot 監(jiān)控處理方案的相關(guān)資料,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-07-07
  • java修飾類(lèi)的使用方法以及使用技巧(分享)

    java修飾類(lèi)的使用方法以及使用技巧(分享)

    下面小編就為大家?guī)?lái)一篇java修飾類(lèi)的使用方法以及使用技巧(分享)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-01-01
  • Spring Aop基本流程原理示例詳解

    Spring Aop基本流程原理示例詳解

    這篇文章主要給大家介紹了關(guān)于Spring Aop基本流程原理的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • 圖解Java排序算法之3種簡(jiǎn)單排序

    圖解Java排序算法之3種簡(jiǎn)單排序

    這篇文章主要為大家詳細(xì)介紹了Java排序算法之3種簡(jiǎn)單排序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • 淺談java7增強(qiáng)的try語(yǔ)句關(guān)閉資源

    淺談java7增強(qiáng)的try語(yǔ)句關(guān)閉資源

    下面小編就為大家?guī)?lái)一篇淺談java7增強(qiáng)的try語(yǔ)句關(guān)閉資源。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-06-06

最新評(píng)論

北川| 凌源市| 金华市| 道真| 湖州市| 博乐市| 平阳县| 富宁县| 荥阳市| 周至县| 台中县| 丽水市| 台前县| 田林县| 芦山县| 潮安县| 新民市| 大连市| 邛崃市| 长武县| 葵青区| 禄劝| 黔东| 西平县| 河池市| 丰城市| 连云港市| 海安县| 通山县| 龙泉市| 陆川县| 峡江县| 黄骅市| 阆中市| 柘城县| 锡林郭勒盟| 河东区| 从江县| 关岭| 静乐县| 本溪|