A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 安显杰 于 2012-11-15 16:34 编辑

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

public class ProxyTest {
public static void main(String[] args) throws SecurityException, NoSuchMethodException {
  //返回代理类的 java.lang.Class 对象,并向其提供类加载器和接口数组。
  Class<?> clazz=Proxy.getProxyClass(Collection.class.getClassLoader(), Collection.class);
   Constructor[] constructors=clazz.getConstructors();//获取clazz的构造函数数组
   for(Constructor constructor:constructors)
   {
    String name=constructor.getName();//获取构造方法名
    StringBuilder sbBuilder=new StringBuilder(name);
//    sbBuilder.append("(");
   // 按照声明顺序返回一组 Class 对象,这些对象表示此 Constructor 对象所表示构造方法的形参类型。
    Class[] clazzParames=constructor.getParameterTypes();
        for(Class clazzParame : clazzParames)
        {
         sbBuilder.append(clazzParame.getName()).append(",");     
      
        }
        if(clazzParames!=null|| clazzParames.length!=0)
         sbBuilder.deleteCharAt(sbBuilder.length()-1);//删除clazzparames最后一个字符
        
//    sbBuilder.append(")");
    System.out.println(sbBuilder);
   
   }
  System.out.println("=========method=====");
   Method[] methods=clazz.getMethods();//获取clazz的构造函数数组
   for(Method method:methods)
   {
    String name=method.getName();//获取构造方法名
    StringBuilder sbBuilder=new StringBuilder(name);
    sbBuilder.append("(");
   // 按照声明顺序返回一组 Class 对象,这些对象表示此 Constructor 对象所表示构造方法的形参类型。
    Class[] clazzParames=method.getParameterTypes();
        for(Class clazzParame : clazzParames)
        {
         sbBuilder.append(clazzParame.getName()).append(",");     
      
        }
        if(clazzParames!=null|| clazzParames.length!=0)
         sbBuilder.deleteCharAt(sbBuilder.length()-1);//删除clazzparames最后一个字符
        
    sbBuilder.append(")");
    System.out.println(sbBuilder);
   
   }

  
               
}
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马