资源预览内容
第1页 / 共3页
第2页 / 共3页
第3页 / 共3页
亲,该文档总共3页全部预览完了,如果喜欢就下载吧!
资源描述
Java代理机制创建动态类在学习编程的过程中,我觉得不止要获得课本的知识,更多的是通过学习技术知识提高解决问题的能力,这样我们才能走在最前方,更多Java学习,请登陆疯狂java培训官网。Java代理机制创建动态类及查看其方法列表信息javapackage com.pzf;import java.lang.reflect.Constructor;import java.lang.reflect.Method;import java.lang.reflect.Proxy;import java.util.Collection;/*创建动态类及查看其方法列表信息*/public class ProxyTest public static void main(String args) Class clazzProxy1= Proxy.getProxyClass(Collection.class.getClassLoader(),Collection.class);/参数1类加载器,2类的接口(可多个)System.out.println(clazzProxy1.getName();/2,查看类的方法/2.1查看构造方法System.out.println(-构造方法列表-);Constructor constructors=clazzProxy1.getConstructors();for(Constructor constructor: constructors)/获得构造方法的名字String name=constructor.getName();StringBuilder sb=new StringBuilder(name);sb.append();/查看方法的参数Class clazzParames= constructor.getParameterTypes();for(Class clazzParame:clazzParames)/取出类型名字,并且追加到StringBuilder,并且每个参数用逗号隔开sb.append(clazzParame.getName().append(,);/去掉最后逗号if(clazzParames!=null&clazzParames.length!=0)sb.deleteCharAt(sb.length()-1);sb.append();System.out.println(sb.toString();System.out.println(-方法列表-);Method methods=clazzProxy1.getMethods();for(Method method: methods)/获得构造方法的名字String name=method.getName();StringBuilder sb=new StringBuilder(name);sb.append();/查看方法的参数Class clazzParames= method.getParameterTypes();for(Class clazzParame:clazzParames)/取出类型名字,并且追加到StringBuilder,并且每个参数用逗号隔开sb.append(clazzParame.getName().append(,);/去掉最后逗号if(clazzParames!=null&clazzParames.length!=0)sb.deleteCharAt(sb.length()-1);sb.append();System.out.println(sb.toString();结果:$Proxy0-构造方法列表-$Proxy0(java.lang.reflect.InvocationHandler)-方法列表-add(java.lang.Object)hashCode()clear()equals(java.lang.Object)toString()contains(java.lang.Object)isEmpty()addAll(java.util.Collection)iterator()size()toArray(Ljava.lang.Object;)toArray()remove(java.lang.Object)containsAll(java.util.Collection)removeAll(java.util.Collection)retainAll(java.util.Collection)isProxyClass(java.lang.Class)getProxyClass(java.lang.ClassLoader,Ljava.lang.Class;)getInvocationHandler(java.lang.Object)newProxyInstance(java.lang.ClassLoader,Ljava.lang.Class;,java.lang.reflect.InvocationHandler)wait()wait(long,int)wait(long)getClass()notify()notifyAll()疯狂Java培训专注软件开发培训,提升学员就业能力,重点提升实践动手能力。技术知识沉淀深厚的老师,让你感受Java的魅力,激发你对于编程的热爱,让你在半年的时间内掌握8-10万的代码量,掌握Java核心技术,成为真正的技术高手;通过大量全真企业项目疯狂训练,迅速积累项目经验。让你成为技能型的现代化高端人才,迅速获得高薪就业!时间不等人,赶紧联系我们吧!
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号