欢迎来到天天文库
浏览记录
ID:35294592
大小:139.50 KB
页数:12页
时间:2019-03-23
《java反射机制总结》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、运用反射获取一个类的方法信息:获取类的方法(4种)etc.//以下是获取类的方法//1.getClass()方法//Stringstr="abc";//Classclass=str.getClass();System.out.println("第一种获取类的方法:");Integeri=newInteger(3);ClassiClass=i.getClass();//java.lang.Class//System.out.println("CanonicalName:"+iClass.getCanonicalName());//符合规格的System.out.println("Simpl
2、eName:"+iClass.getSimpleName());//System.out.println("Name:"+iClass.getName());Stringstr="abc";System.out.println(str.getClass().getSimpleName());//2.Class.forName()System.out.println("第二种获取类的方法:");Classc21=Class.forName("java.lang.String");Classc22=Class.forName("ReflectionDemos.MyClass");Classc
3、23=Class.forName("OperateFile.CopyFile1");System.out.println(c21.getSimpleName());System.out.println(c22.getSimpleName());System.out.println(c23.getSimpleName());//3.Classc=String.class;System.out.println("第三种获取类的方法:");ClassiClass2=int.class;System.out.println(iClass2.getSimpleName());////4.运用原始包
4、装类中的TYPE方法//Classc1=Integer.TYPE;//Classc2=Boolean.TYPE;//Classc3=Void.TYPE;//Classc4=Character.TYPE;System.out.println("第四种获取类的方法:");ClassiClass3=Integer.TYPE;System.out.println(iClass3.getCanonicalName());System.out.println(iClass3.getSimpleName());Output:第一种获取类的方法:SimpleName:IntegerString第二种获取
5、类的方法:StringMyClassCopyFile1第三种获取类的方法:int第四种获取类的方法:intint//显示一个对象的类名/**@method1显示对象的类名*/publicstaticvoidprintClassName(Objectobj){System.out.println("Theclassof"+obj.getClass().getName());}etc./**@testmethod1*/ClassTestct=newClassTest();printClassName(ct);Output:TheclassofReflectionDemos.ClassTest
6、获得类的所有属性:(包括publicprivateprotected)etc./**@method2Class>Field[]getDeclaredFields()返回Field*对象的一个数组,这些对象反映此Class对象所表示的类或接口所声明的所有字段。*/importjava.lang.reflect.Field;Field[]fields=Class.forName("ReflectionDemos.MyClass").getDeclaredFields();for(inti=0;i7、+fields[i].getName()+"t属性类型"+fields[i].getType());}Output:属性名:i属性类型int属性名:f属性类型float属性名:s属性类型classjava.lang.String属性名:array属性类型class[Ljava.lang.Object;//获得类的所有方法Methodmethods[]=classType.getDeclaredMethods();methods[0
7、+fields[i].getName()+"t属性类型"+fields[i].getType());}Output:属性名:i属性类型int属性名:f属性类型float属性名:s属性类型classjava.lang.String属性名:array属性类型class[Ljava.lang.Object;//获得类的所有方法Methodmethods[]=classType.getDeclaredMethods();methods[0
此文档下载收益归作者所有