JAVA反射机制详解

JAVA反射机制详解

ID:37858077

大小:100.00 KB

页数:9页

时间:2019-06-01

JAVA反射机制详解_第1页
JAVA反射机制详解_第2页
JAVA反射机制详解_第3页
JAVA反射机制详解_第4页
JAVA反射机制详解_第5页
资源描述:

《JAVA反射机制详解》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、—高级软件人才实作培训专家!反射概述1 反射的概述1.1 什么是反射每个.class文件被加载到内存后都是一个Class类的对象!例如Demo.class加载到内存后它是Class类型的一个对象。反射就是通过Class对象获取类型相关的信息。一个Class对象就表示一个.class文件,可以通过Class对象获取这个类的构造器、方法,以及成员变量等。反射是Java的高级特性,在框架中大量被使用!我们必须要了解反射,不然无法学好JavaWeb相关的知识!1.2 反射相关类与反射相关的类:lClass:表示类;lField:表示成员变量

2、;lMethod:表示方法;lConstructor:表示构造器。与反射相关的类们,它们都不能new!!!2 Class类2.1 获取Class类获取Class类的三种l类名.classl对象.getClass()lClass.forName(“字符串:类名”)基本方式:l通过类名称.class,对基本类型也支持;ØClassc=int.class;北京传智播客教育www.itcast.cn—高级软件人才实作培训专家!ØClassc=int[].class;ØClassc=String.classl通过对象.getClass()方法ØClass

3、c=obj.getClass();lClass.forName()通过类名称加载类,这种方法只要有类名称就可以得到Class;ØClassc=Class.forName(“cn.itcast.Demo”);2.2 Class类的常用方法lStringgetName():获取类名称,包含包名;lStringgetSimpleName():获取类名称,不包含包名;lClassgetSupperClass():获取父类的Class,例如:newInteger(100).getClass().getSupperClass()返回的是Class

4、er>!但newObject().getSupperClass()返回的是null,因为Object没有父类;lTnewInstance():使用本类无参构造器来创建本类对象;lbooleanisArray():是否为数组类型;lbooleanisAnnotation():是否为注解类型;lbooleanisAnnotationPresent(ClassannotationClass):当前类是否被annotationClass注解了;lbooleanisEnum():是否为枚举类型;lbooleanisInterface():是否为接口类型;

5、lbooleanisPrimitive():是否为基本类型;lbooleanisSynthetic():是否为引用类型;2.3 通过反射创建对象publicclassDemo1{@Testpublicvoidfun1()throwsException{StringclassName="cn.itcast.User";Classclazz=Class.forName(className);Useruser=(User)clazz.newInstance();System.out.println(user);}}classUser{privateS

6、tringusername;privateStringpassword;publicStringgetUsername(){returnusername;北京传智播客教育www.itcast.cn—高级软件人才实作培训专家!}publicvoidsetUsername(Stringusername){this.username=username;}publicStringgetPassword(){returnpassword;}publicvoidsetPassword(Stringpassword){this.password=passwo

7、rd;}@OverridepublicStringtoString(){return"User[username="+username+",password="+password+"]";}}User[username=null,password=null]3 Constructor它是Class的一个组成部门,所以需要先得到Class,再通过Class的方法得到ConstructorConstructor表示一个类的构造器。即构造器的反射对象!3.1 获取Constructor对象  获取Construcator对象需要使用Class对象,下

8、面API来自Class类:lConstructorgetConstructor(Class…parameterTypes):通过指定的参数类型获取公有

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。