Java动态代理-创建动态类及查看其方法列表信息
来源:互联网 发布:windows无法打开此文件 编辑:程序博客网 时间:2024/05/31 06:22
package com.mari.proxy;import java.lang.reflect.Constructor;import java.lang.reflect.Method;import java.lang.reflect.Proxy;import java.util.List;public class ProxyTest { public static void main(String[] args) { Class<?> clazzProxy1 = Proxy.getProxyClass(List.class.getClassLoader(), List.class); System.out.println(clazzProxy1.getName()); System.out.println("------begin constructor list-------"); Constructor<?>[] constructors = clazzProxy1.getConstructors(); for (Constructor<?> constructor : constructors) { String name = constructor.getName(); StringBuilder sb = new StringBuilder(name); sb.append('('); Class<?>[] clazzParams = constructor.getParameterTypes(); for (Class<?> clazzParam : clazzParams) { sb.append(clazzParam.getClass().getName()).append(","); } if (clazzParams != null && clazzParams.length > 0) sb.deleteCharAt(sb.length() - 1); sb.append(')'); System.out.println(sb.toString()); } System.out.println("------begin method list-------"); Method[] clazzMethods = clazzProxy1.getMethods(); for (Method method : clazzMethods) { String name = method.getName(); StringBuilder sb = new StringBuilder(name); Class<?>[] clazzParams = method.getParameterTypes(); sb.append('('); for (Class<?> clazzParam : clazzParams) { sb.append(clazzParam.getClass().getName()).append(","); } if(clazzParams != null && clazzParams.length > 0) sb.deleteCharAt(sb.length() -1); sb.append(')'); System.out.println(sb.toString()); } }}
打印的信息
com.sun.proxy.$Proxy0------begin constructor list-------com.sun.proxy.$Proxy0(java.lang.Class)------begin method list-------add(java.lang.Class,java.lang.Class)add(java.lang.Class)remove(java.lang.Class)remove(java.lang.Class)get(java.lang.Class)equals(java.lang.Class)toString()hashCode()indexOf(java.lang.Class)clear()contains(java.lang.Class)isEmpty()iterator()lastIndexOf(java.lang.Class)replaceAll(java.lang.Class)size()subList(java.lang.Class,java.lang.Class)toArray()toArray(java.lang.Class)spliterator()addAll(java.lang.Class,java.lang.Class)addAll(java.lang.Class)stream()forEach(java.lang.Class)set(java.lang.Class,java.lang.Class)containsAll(java.lang.Class)listIterator()listIterator(java.lang.Class)removeAll(java.lang.Class)removeIf(java.lang.Class)retainAll(java.lang.Class)sort(java.lang.Class)parallelStream()isProxyClass(java.lang.Class)getProxyClass(java.lang.Class,java.lang.Class)getInvocationHandler(java.lang.Class)newProxyInstance(java.lang.Class,java.lang.Class,java.lang.Class)wait()wait(java.lang.Class,java.lang.Class)wait(java.lang.Class)getClass()notify()notifyAll()
0 0
- Java动态代理-创建动态类及查看其方法列表信息
- Java 代理类(一) 创建动态类及查看其方法列表信息
- 【Java进阶-Java动态代理与AOP】02 创建动态类及查看其方法列表信息
- 创建动态类Proxy,及查看其方法列表信息
- 创建动态类及查看其方法列表信息
- 创建动态类及查看代理方法列表信息
- 11.1 创建动态类及其查看其方法列表信息
- Java 创建动态类和查看方法列表信息
- 通过JDK proxy创建动态类,并查看其方法列表信息
- Java动态代理-创建动态类的实例对象及调用其方法
- 【Java进阶-Java动态代理与AOP】03 创建动态类的实例对象及调用其方法
- 创建代理类及查看普通方法方法列表
- 创建代理类及查看构造方法列表
- 11.2 创建动态代理实例即调用其方法
- java创建动态代理类
- java代理模式及动态代理类
- iOS中创建动态链接库及调用其方法
- java代理及动态代理
- error C3859: 超过了PCH的虚拟内存范围;请使用“-Zm33”或更大的命令行选项重新编译
- 初探React之生命周期
- 网站服务,流量监控
- 1006. 换个格式输出整数
- MyEclispe 代码自动提示显示“No Default Proposals”解决方法
- Java动态代理-创建动态类及查看其方法列表信息
- 模块化编程
- 手机开发实战38——手机软件架构简介
- CSS里padding和margin的区别是什么?
- Android项目程序结构
- UVA 10375 - Choose and divide(数论)(组合数学)
- 辅助函数
- c++实验6--矩阵求和
- 单片机学习笔记(三)——数码管显示