java 反射getClass .class 的使用方法示例
本文实例讲述了java反射getClass.class的使用方法。分享给大家供大家参考,具体如下:
java反射机制
怎么从一个实例上的获得类反射
/** *obj实例的对象 *getClass()获得该实例类的反射 *@return *Class */ obj.getClass(); //例子 Stringstr1="123"; Class>strClass1=str1.getClass(); Stringstr2=newString("456"); Class>strClass2=str2.getClass();
怎么从一个类上获得类的反射
/** *ClassName类名称 *.class该类的属性 *@return *Class */ ClassName.class //例子 Class>a=String.class Class>b=Integer.class Class>c=Double.class
packageMain; importjava.lang.reflect.Field; importjava.lang.reflect.InvocationTargetException; importjava.lang.reflect.Method; importjava.lang.reflect.Modifier; importjava.util.Arrays; importDemo.Demo1; publicclassIndex { publicstaticvoidmain(String[]agrs)throwsException { Demo1obj=newDemo1(); Stringstr=(String)runTargetMethod(obj,"test1",newClass[]{String.class,String.class},newObject[]{"2","3"}); System.out.println(str); System.out.println(); System.out.println(); System.out.println(); dumpTargetMethod(obj); } /** *调用指定对象的指定方法。 *@paramObjectobj对象实例 *@paramStringmethodName要调用的方法名称 *@paramClass>[]classes方法中的参数对象 *@paramObject[]valObj需要向参数中传递的值 *@returnObject直接结果 **/ publicstaticObjectrunTargetMethod(Objectobj,StringmethodName,Class>[]classes,Object[]valObj)throwsException { Class>classObj=obj.getClass(); Methodmethod=classObj.getMethod(methodName,classes); returnmethod.invoke(obj,valObj); } /** *打印对象内容 *@paramObjectobj对象实例 *@throwsIllegalAccessException *@throwsIllegalArgumentException **/ publicstaticvoiddumpTargetMethod(Objectobj)throwsIllegalArgumentException,IllegalAccessException { Class>classObj=obj.getClass(); System.out.println("-------------------methoddump-------------------------"); Method[]methods=classObj.getDeclaredMethods(); for(Methodmethod:methods) { Class>[]parameters=method.getParameterTypes(); StringBufferstrBuffer=newStringBuffer(); for(inti=0;i packageDemo; /** *Demo测试类 */ publicclassDemo1 { publicStringdemo1="demo1_val"; protectedStringdemo2="demo2_val"; privateStringdemo3="demo3_val"; publicstaticStringdemo4="demo4_val"; publicStringgetName() { return"mynameis勇哥"; } publicintgetAge() { return22; } publicStringtest1(Stringstr1,Stringstr2) { StringBufferbuffer=newStringBuffer(str1); buffer.append(str2); returnbuffer.toString(); } publicStringtest1() { return"123"; } }更多java相关内容感兴趣的读者可查看本站专题:《Java面向对象程序设计入门与进阶教程》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》
希望本文所述对大家java程序设计有所帮助。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。