欢迎来到天天文库
浏览记录
ID:46373451
大小:467.00 KB
页数:42页
时间:2019-11-23
《第16章 反射》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第16章反射类别载入与检视使用反射生成与操作对象简介Class与类别载入真正需要使用一个类别时才会加以加载java.lang.Class对象代表了Java应用程序在运行时所加载的类别或接口实例可以透过Object的getClass()方法来取得每一个对象对应的Class对象,或者是透过"class"常量(Classliteral)简介Class与类别载入Stringname="caterpillar";ClassstringClass=name.getClass();System.out.println("类别名称:"+
2、stringClass.getName());System.out.println("是否为接口:"+stringClass.isInterface());System.out.println("是否为基本型态:"+stringClass.isPrimitive());System.out.println("是否为数组对象:"+stringClass.isArray());System.out.println("父类别名称:"+stringClass.getSuperclass().getName());Classstr
3、ingClass=String.class;简介Class与类别载入所谓「真正需要」通常指的是要使用指定的类别生成对象例如使用Class.forName()加载类别,或是使用ClassLoader的loadClass()载入类别publicclassTestClass{static{System.out.println("类别被载入");}}TestClasstest=null;System.out.println("宣告TestClass参考名称");test=newTestClass();System.out.pri
4、ntln("生成TestClass实例");简介Class与类别载入Class的讯息是在编译时期就被加入至.class档案中执行时期JVM在使用某类别时,会先检查对应的Class对象是否已经加载如果没有加载,则会寻找对应的.class档案并载入简介Class与类别载入一个类别在JVM中只会有一个Class实例每个类别的实例都会记得自己是由哪个Class实例所生成可使用getClass()或.class来取得Class实例简介Class与类别载入数组是一个对象,也有其对应的Class实例System.out.println
5、(boolean.class);System.out.println(void.class);int[]iarr=newint[10];System.out.println(iarr.getClass().toString());double[]darr=newdouble[10];System.out.println(darr.getClass().toString());booleanvoidclass[Iclass[D从Class中获取信息Class对象表示所加载的类别,取得Class对象之后,您就可以取得与类别相
6、关联的信息套件的对应型态是java.lang.Package建构方法的对应型态是java.lang.reflect.Constructor方法成员的对应型态是java.lang.reflect.Method数据成员的对应型态是java.lang.reflect.Field从Class中获取信息try{Classc=Class.forName(args[0]);Packagep=c.getPackage();System.out.println(p.getName());}catch(ArrayIndexOutOfBoun
7、dsExceptione){System.out.println("没有指定类别");}catch(ClassNotFoundExceptione){System.out.println("找不到指定类别");}从Class中获取信息Classc=Class.forName(args[0]);//取得套件代表对象Packagep=c.getPackage();System.out.printf("package%s;%n",p.getName());//取得型态修饰,像是class、interfaceintm=c.get
8、Modifiers();System.out.print(Modifier.toString(m)+"");//如果是接口if(Modifier.isInterface(m)){System.out.print("interface");}else{System.out.print("class");}System.
此文档下载收益归作者所有