黑马程序员技术交流社区

标题: 通过反射创建一个动态类查看其方法列表信息 [打印本页]

作者: 草上飞    时间: 2012-11-15 16:32
标题: 通过反射创建一个动态类查看其方法列表信息
本帖最后由 安显杰 于 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);
   
   }

  
               
}
}






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2