通过JDK proxy创建动态类,并查看其方法列表信息
2014-07-02 23:24
375 查看
package cn.cblue.aop; import java.lang.reflect.Constructor; import java.lang.reflect.Method; import java.lang.reflect.Proxy; import java.util.Collection; /** * @Description: 创建动态类,并查看其方法列表信息 * @author huangzjb cblue2013@126.com * @Company Digital China * @date 2014-7-2 下午11:12:25 * @version 1.0 */ public class ProxyTest { public static void main(String[] args) { Class clazzProxy1 = Proxy.getProxyClass(Collection.class .getClassLoader(), Collection.class); System.out.println(clazzProxy1.getName()); System.out.println("--------begin constructor list------------"); Constructor[] constructors = clazzProxy1.getConstructors(); for (Constructor constructor : constructors) { StringBuilder builder = new StringBuilder(); builder.append(constructor.getName()); builder.append("("); Class[] clazzPrams = constructor.getParameterTypes(); for (Class clazz : clazzPrams) { builder.append(clazz.getName()); } if (clazzPrams != null && clazzPrams.length != 0) { builder.deleteCharAt(builder.length() - 1); } builder.append(")"); System.out.println(builder); } System.out.println("--------begin method list------------"); Method[] methods = clazzProxy1.getMethods(); for (Method method : methods) { StringBuilder builder = new StringBuilder(); builder.append(method.getName()); builder.append("("); Class[] clazzPrams = method.getParameterTypes(); for (Class clazz : clazzPrams) { builder.append(clazz.getName() + ","); } if (clazzPrams != null && clazzPrams.length != 0) { builder.deleteCharAt(builder.length() - 1); } builder.append(")"); System.out.println(builder); } } }
StringBuilder 和StringBuffer的区别:
不考虑线程同步的情况下使用StringBuilder,效率高。
考虑线程安全使用StringBuffer。
相关文章推荐
- 创建动态类Proxy,及查看其方法列表信息
- 创建动态类及查看其方法列表信息
- Java 创建动态类和查看方法列表信息的实例
- Java 创建动态类和查看方法列表信息
- 11.1 创建动态类及其查看其方法列表信息
- Java代理学习-创建动态类及查看其方法列表信息
- 创建动态类及查看代理方法列表信息
- 50_创建动态类及查看其方法列表信息
- 【Java进阶-Java动态代理与AOP】02 创建动态类及查看其方法列表信息
- Java 代理类(一) 创建动态类及查看其方法列表信息
- 创建代理类及查看普通方法方法列表
- 创建代理类及查看构造方法列表
- 通过AlertDialog.Builder类的setSingleChoiceItems方法可以创建带单按钮的列表:方法如下
- java通过反射+javassist获得方法所有信息(返回值、方法名、参数类型列表、参数列表)
- VC++实现通过API来查看程序错误信息的方法
- linux下关闭printk打印信息以及通过网络查看方法
- Android Studio查看函数(方法)的形参列表,返回值,以及提示信息
- java代理的学习,通过类实现接口来实现代理。proxy来创建动态类,和InvocationHandler接口的实现,和工作原理。
- 几种查看linux版本信息的方法
- 如何创建一个用弹出窗口来查看详细信息的超链接列