Java动态代理-创建动态类及查看其方法列表信息

package com.mari.proxy;

import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import java.util.List;

public class ProxyTest {

  public static void main(String[] args) {

    Class<?> clazzProxy1 = Proxy.getProxyClass(List.class.getClassLoader(), List.class);
    System.out.println(clazzProxy1.getName());

    System.out.println("------begin constructor list-------");
    Constructor<?>[] constructors = clazzProxy1.getConstructors();
    for (Constructor<?> constructor : constructors) {
      String name = constructor.getName();
      StringBuilder sb = new StringBuilder(name);
      sb.append('(');
      Class<?>[] clazzParams = constructor.getParameterTypes();
      for (Class<?> clazzParam : clazzParams) {
        sb.append(clazzParam.getClass().getName()).append(",");
      }
      if (clazzParams != null && clazzParams.length > 0)
        sb.deleteCharAt(sb.length() - 1);
      sb.append(')');
      System.out.println(sb.toString());
    }


    System.out.println("------begin method list-------");
    Method[] clazzMethods = clazzProxy1.getMethods();
    for (Method method : clazzMethods) {
      String name = method.getName();
      StringBuilder sb = new StringBuilder(name);
      Class<?>[] clazzParams = method.getParameterTypes();
      sb.append('(');
      for (Class<?> clazzParam : clazzParams) {
        sb.append(clazzParam.getClass().getName()).append(",");
      }
      if(clazzParams != null && clazzParams.length > 0)
        sb.deleteCharAt(sb.length() -1);
      sb.append(')');
      System.out.println(sb.toString());
    }

  }

}

打印的信息

com.sun.proxy.$Proxy0
------begin constructor list-------
com.sun.proxy.$Proxy0(java.lang.Class)
------begin method list-------
add(java.lang.Class,java.lang.Class)
add(java.lang.Class)
remove(java.lang.Class)
remove(java.lang.Class)
get(java.lang.Class)
equals(java.lang.Class)
toString()
hashCode()
indexOf(java.lang.Class)
clear()
contains(java.lang.Class)
isEmpty()
iterator()
lastIndexOf(java.lang.Class)
replaceAll(java.lang.Class)
size()
subList(java.lang.Class,java.lang.Class)
toArray()
toArray(java.lang.Class)
spliterator()
addAll(java.lang.Class,java.lang.Class)
addAll(java.lang.Class)
stream()
forEach(java.lang.Class)
set(java.lang.Class,java.lang.Class)
containsAll(java.lang.Class)
listIterator()
listIterator(java.lang.Class)
removeAll(java.lang.Class)
removeIf(java.lang.Class)
retainAll(java.lang.Class)
sort(java.lang.Class)
parallelStream()
isProxyClass(java.lang.Class)
getProxyClass(java.lang.Class,java.lang.Class)
getInvocationHandler(java.lang.Class)
newProxyInstance(java.lang.Class,java.lang.Class,java.lang.Class)
wait()
wait(java.lang.Class,java.lang.Class)
wait(java.lang.Class)
getClass()
notify()
notifyAll()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值