码迷,mamicode.com
首页 > 编程语言 > 详细

Java基础之反射

时间:2017-08-21 22:59:53      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:虚拟   json解析   bsp   创建   动态   XML   java反射   类信息   它的   

Java反射是指运行时获取类信息,进而在运行时动态构造对象、调用对象方法及修改对象属性的机制。百度百科的定义:“JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。

一、反射的用途

Java的反射机制可以做3件事:运行时创建对象、运行时调用方法、运行时读写属性。进而实现以下功能:
调用一些私有方法,实现黑科技。比如双卡短信发送、设置状态栏颜色、自动挂电话等。

实现序列化与反序列化,比如PO的ORM,Json解析等。

实现跨平台兼容,比如JDK中的SocketImpl的实现。

通过xml或注解,实现依赖注入(DI),注解处理,动态代理,单元测试等功能。比如Retrofit、Spring或者Dagger。

二、Java反射的优缺点

优点: 

(1)能够运行时动态获取类的实例,大大提高系统的灵活性和扩展性。 
(2)与Java动态编译相结合,可以实现无比强大的功能 

缺点: 
(1)使用反射的性能较低 
(2)使用反射相对来说不安全 
(3)破坏了类的封装性,可以通过反射获取这个类的私有方法和属性 

三、Java反射的用法

主要反射API,用来生成在当前JAVA虚拟机中的类、接口或者对象的信息。

●Class类:反射的核心类,可以获取类的属性,方法等内容信息。

●Field类:Java.lang.reflect.表示类的属性,可以获取和设置类的中属性值。

●Method类:Java.lang.reflect。表示类的方法,它可以用来获取类中方法的信息或者执行方法

Construcor类:Java.lang.reflect。表示类的构造方法。

使用步骤:

●获得想操作类的Java.lang.Class对象
●调用Class的方法
●使用反射API来操作这些信息

 

Java基础之反射

标签:虚拟   json解析   bsp   创建   动态   XML   java反射   类信息   它的   

原文地址:http://www.cnblogs.com/doit8791/p/7406994.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!