package again.generic;
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import java.util.Collection;
public class MyTest2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//获得Collection代理类
Class clazzProxy=Proxy.getProxyClass(Collection.class.getClassLoader(), Collection.class);
System.out.println("----------Constructor list-------------");
//获得所有的构造方法
Constructor[] constructors=clazzProxy.getConstructors();
for(Constructor constructor:constructors){
StringBuilder sb=new StringBuilder();
sb.append(constructor.getName());
sb.append("(");
//获得构造方法的所有参数类型
Class [] clazzParameterType=constructor.getParameterTypes();
for(int i=0;i<clazzParameterType.length;i++)
{
if(i==clazzParameterType.length-1)
sb.append(clazzParameterType[i].getSimpleName());
else
sb.append(clazzParameterType[i].getSimpleName()+",");
}
sb.append(")");
System.out.println(sb.toString());
}
System.out.println("----------method list-------------");
//获得代理类的所有方法
Method[] methods=clazzProxy.getMethods();
for(Method method:methods){
StringBuilder sb=new StringBuilder();
sb.append(method.getName());
sb.append("(");
Class [] clazzParameterType=method.getParameterTypes();
for(int i=0;i<clazzParameterType.length;i++)
{
if(i==clazzParameterType.length-1)
sb.append(clazzParameterType[i].getSimpleName());
else
sb.append(clazzParameterType[i].getSimpleName()+",");
}
sb.append(")");
System.out.println(sb.toString());
}
}
}
获取代理类的所有构造方法和一般方法
最新推荐文章于 2024-08-19 14:00:46 发布