Java动态机制-反射技术.ppt
《Java动态机制-反射技术.ppt》由会员分享,可在线阅读,更多相关《Java动态机制-反射技术.ppt(14页珍藏版)》请在三一办公上搜索。
1、Java动态机制-反射技术,Java是动态语言吗?,一般而言,开发者社群说到动态语言,大致认同的一个定义是:“程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言”。从这个观点看,Perl,Python,Ruby是动态语言,C+,Java,C#不是动态语言。尽管在这样的定义与分类下Java不是动态语言,它却有着一个非常突出的动态相关机制:Reflection。,Reflection 是Java被视为动态(或准动态)语言的一个关键性质Reflection的意思是“反射、映象、倒影”,用在Java身上指的是我们可以于运行时加载、探知、使用编译期间完全未知的classes。换句话说,Java
2、程序可以加载一个运行时才得知名称的class,获悉其完整构造(但不包括methods定义),并生成其对象实体、或对其fields设值、或唤起(调用)其methods。这种“看透class”的能力(the ability of the program to examine itself)被称为introspection(内省、内观、反省),Java是动态语言吗?,1.Retrieving Class Objects,获取一个Class对象(metadata)1、从对象的实例获取。Class c=mystery.getClass();/(return Class)2、从子类的实例获取 TextFi
3、eld t=new TextField();Class c=t.getClass();Class s=c.getSuperclass();3、知道类名,则可以把.class加入到名字之后来获取。Class c=;4、如果类名在编译时是未知的,则可以使用Class.forName()方法来获取.Class c=Class.forName(classString);,2.Getting the Class Name,获取类名称 import java.awt.*;class SampleName public static void main(String args)Button b=new Bu
4、tton();printName(b);static void printName(Object o)Class c=o.getClass();String s=c.getName();System.out.println(s);,3.Discovering Class Modifiers,检索修饰符 1、通过getModifiers()方法获取一个整型标识值。2、通过对象的isPublic,isAbstract,和 isFinal方法判断此值.例如:public static void printModifiers(Object o)Class c=o.getClass();int m=c.
5、getModifiers();if(Modifier.isPublic(m)System.out.println(public);if(Modifier.isAbstract(m)System.out.println(abstract);if(Modifier.isFinal(m)System.out.println(final);,4.Finding Superclasses,检索父类class SampleSuper public static void main(String args)Button b=new Button();printSuperclasses(b);static v
6、oid printSuperclasses(Object o)Class subclass=o.getClass();Class superclass=subclass.getSuperclass();while(superclass!=null)String className=superclass.getName();System.out.println(className);subclass=superclass;superclass=subclass.getSuperclass();,5.Identifying the Interfaces Implemented by a Class
7、,检索指定类实现的接口 class SampleInterface public static void main(String args)try RandomAccessFile r=new RandomAccessFile(myfile,r);printInterfaceNames(r);catch(IOException e)System.out.println(e);static void printInterfaceNames(Object o)Class c=o.getClass();Class theInterfaces=c.getInterfaces();for(int i=0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 动态 机制 反射 技术
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-5436037.html