《Java代理机制创建动态类.doc》由会员分享,可在线阅读,更多相关《Java代理机制创建动态类.doc(3页珍藏版)》请在金锄头文库上搜索。
1、 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 Pr
2、oxyTest 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();f
3、or(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
4、().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 Strin
5、gBuilder(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.o
6、ut.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.Obj
7、ect)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核心技术,成为真正的技术高手;通过大量全真企业项目疯狂训练,迅速积累项目经验。让你成为技能型的现代化高端人才,迅速获得高薪就业!时间不等人,赶紧联系我们吧!