您的位置:首页 > 其它

创建代理类及查看普通方法方法列表

2011-06-27 09:08 441 查看
查看普通方法列表的方法与查看构造方法列表的方法是想相同的

代码示例:

package cn.itcast.proxy;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import java.util.Collection;
public class ProxyTest {
/**
* @param args
*/
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
/**
* Proxy.getProxyClass方法参数说明
* 首先第二个参数为什么在这里是Collection的字节码呢? 因为是要为Collection创建代理类
* 所以在这里代理就必须实现被代理类的接口
* 第一个参数一般是使用要被实现代理类的接口的加载器
*
*/
Class clazz = Proxy.getProxyClass(Collection.class.getClassLoader(), Collection.class);
System.out.println("代理类的类名是:" + clazz.getName());
Method[] methods = clazz.getMethods();
for (Method method : methods) {
String methodName = method.getName();
StringBuilder sBuilder = new StringBuilder(methodName);
sBuilder.append("(");
Class[] clazzMethodParams = method.getParameterTypes();
for (Class clazzMethodParam : clazzMethodParams) {
String methodParam = clazzMethodParam.getName();
sBuilder.append(methodParam);
sBuilder.append(",");
}
if (clazzMethodParams != null && clazzMethodParams.length > 0) {
sBuilder.deleteCharAt(sBuilder.length() - 1);
}
sBuilder.append(")");
System.out.println(sBuilder.toString());
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: