微交易系统开发基础之Java反射技术浅析.doc

微交易系统开发基础之Java反射技术浅析.doc

ID:50064057

大小:89.50 KB

页数:8页

时间:2020-03-04

微交易系统开发基础之Java反射技术浅析.doc_第1页
微交易系统开发基础之Java反射技术浅析.doc_第2页
微交易系统开发基础之Java反射技术浅析.doc_第3页
微交易系统开发基础之Java反射技术浅析.doc_第4页
微交易系统开发基础之Java反射技术浅析.doc_第5页
资源描述:

《微交易系统开发基础之Java反射技术浅析.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Ummihhiuu聽夫科技«4U«r■童岭MA«Jc»H微交易系统开发基础之Java反射技术浅析在Java运行时环境中,对于任意一个类,能否知道这个类的哪些属性和方法?对于任意一个对象,能否调用它的任意一个方法?答案是肯定的。这种动态获取类的信息以及动态调用对象的方法的功能来H于Java语言的反射(Reflection)机制。反射给java提供了,运行时获取一个类实例的可能,这一点非常灵活,你仅仅传一个类的全限定名,就能通过反射,来获取对应的类实例,我们一般会用Class类,来调用这个被反射的Objcet类下

2、的:构造方法,属性,或方法等。反射在一些开源框架里用的非常之多,Spring,Struts,Hibnerate,MyBatics都有它的影了,反射虽然很灵活,能够使得写的代码,变的大幅精简,所以在用的时候,一定要注意具体的应用场景。反射的优缺点如下:优点:A:能够运行时动态获取类的实例,大大提高系统的灵活性和扩展性。B:与Java动态编译相结合,可以实现无比强大的功能缺点:A:使用反射的性能较低B:使用反射相对來说不安全C:破坏了类的封装性,可以通过反射获取这个类的私有方法和属性任何事物,祁有两面性,反射的优

3、点,也同是就是它的缺点,所以,没有好与坏,只有最合适的场景,一阴一阳,才是天道平衡的条件。在反射API屮我们重点关注一下几个类:Class—代表类Field一代表属性(成员变量)Method—代表方法Constructor—代表构造方法■童岭>.A«Jc»U一、ClassJava屮不论一个类产生了多少个对象,这些对象的Class对象都始终是一个。Class对象屮含有该类的任何信息(属性,方法,类名,父类,包等),在Java屮获取Class对象的方法有三种://第一种方法:类名.classClasscla=St

4、udent,class;Classas=int.class;//基本数据类型唯一能点出的就是class//第二种方法:通过对彖调用.getClassOStudentstu=newStudent();Classc=stu.getClassO;//第三种方法:通过类的全限定名获取try{Classcl二Class.forName("entity.Student”);}catch(ClassNotFoundExceptione){e.printStackTraceO;}System,out.printIn(cla.

5、getNcmeO);//全限定名System,out.printIn(Modifier.toString(cla.getModifiers()));System,out.printin(cla.getSimpleName());System,out.println(cla.getPackage().getName0);可以通过Class对彖产生该类的对彖,如下://获取Class对象IJJ瑛夫科技*MA«JcHI*Classcla=Student,class;/*1.肓接创建对彖(调用默认无参构造方法),类里

6、必须要有默认构造方法*/Objectobjl二cla.newlnstance();System・out.printIn(objl);二、Constructor如果想通过冇参构造方法来创建对象,那么这时候就得先获取有参构造方法,再通过有口□□构造方法来创建对象://获取Class对象Classcla=Student,class;/*1.肓接创建对彖(调用默认无参构造方法),类里必须要有默认构造方法*/Objectobjl=cla.newlnstance();System,out.printIn(objl);/*

7、2.通过无参构造方法创建对彖,和第一种方法效果一样*/Constructorno=cla.getConstructor();//先获取无参构造方法Objectobj2=no.newlnstance0:Systom.out.printingbj2);/*3.通过有参构造方法创建对象*/Constructorhas=cla.getDeclaredConstructor(String,class,int.class)://形参Objectobj3=has.newlnstance(u老李”,23);//传入的是实参S

8、ystem,out.printIn(obj3);三、FieldField代表是类中的屈性,我们可以获取属性,并修改其值(注:先得有对象才能修改值,另:修改没权限的屈性时,需耍先打开该属性的权限)。讥3”Miuu瑛夫科技44Uor■童岭MA«Jc»U//获取Class对象Classcla二newStudent().getClass();//获取构造方法Constructorcon=cla.getCon

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

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

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