我们在只知道类名的情况下,想得到这个类的构造方法和成员方法,那么这个时候就可以通过反射机制实现这个需求:
我们这里以Set集合为例,来得到Set集合多有方法和构造方法及其参数类型。
下面是代码:
Class clazzProxy1=Proxy.getProxyClass(Set.class.getClassLoader(), Set.class);
Constructor []constructors=clazzProxy1.getConstructors();
for(Constructor constructor:constructors){
String name=constructor.getName();
StringBuilder sb=new StringBuilder(name);
Class []clazzs=constructor.getParameterTypes();
sb.append('(');
for(Class clazz:clazzs){
sb.append(clazz.getName()+",");
}
if(clazzs!=null){
sb.deleteCharAt(sb.length()-1);
}
sb.append(')');
System.out.println(sb.toString());
}
Method []methods=clazzProxy1.getMethods();
for(Method method:methods){
String name=method.getName();
StringBuilder sb=new StringBuilder(name);
Class []clazzs=method.getParameterTypes();
sb.append('(');
for(Class clazz:clazzs){
sb.append(clazz.getName()+",");
}
if(clazzs!=null&&clazzs.length!=0){
sb.deleteCharAt(sb.length()-1);
}
sb.append(')');
System.out.println(sb.toString());
}
这里用到了Proxy代理类,这里通过代理类得到Set集合的代理类,然后通过反射机制实现方法的打印:
上面则是打印结果,
写之记录记录。。。