学习啦>知识大全>知识百科>百科知识>

java什么是反射意思概念介绍

时间: 欧东艳656 分享

  Java中的反射,我们常见是取得构造方法,成员变量,普通方法,还有对数组反射的操作。

  1、反射的精辟定义:反射就是把Java类中的各种成分映射成相应的Java类。

  2、Class实例表示正在运行的Java应用程序中的类和接口。所有的

  3、反射除了方法体得不到,别的都可以得到。包括可以得到类里私有的成员变量。本人觉得这破坏了Java的封装性,不知道为什么要这么设计。

  一、构造方法的反射

  (1)得到需要反射的类Class。知道类名可以使用forName(String className) 方法。也可以通过对象的.getClass方法获得。或者明确去获得哪个类型。比如我们有一个Person类,我们想得到这个类的实例可以写成 Person.class。

  (2)构造方法用Constructor类表示。可以通过刚才得到的Class,使用getConstructor方法获得,想获得什么形参的构造方法,就传入什么形参类型的Class,比如想取得String的String(StringBuffer buffer) 构造方法可以这样:String.class.getConstructor(StringBuffer.class)。

  (3)使用取得的构造方法创建对象,我们需要使用newInstance方法,形参为可变参数,按上面取得的String的构造方法,我们就可以这样创建对象,String.class.getConstructor(StringBuffer.class).newInstance(new StringBuffer())

  二、成员变量的反射

  (1)我们同样需要取得反射的类Class。

  (2)Java中使用Field类表示字段,我们想获得成员变量可以使用Class的getField(String name)方法,参数为成员变量的名字。也有getFields()方法取得该类的所有成员变量,返回值为Field的数组。取得Field的值,使用 get方法,设置值使用set方法。

  (3)暴力访问私有成员使用setAccessible方法,getType() 取得Field类型,getName()取得Field的字段名称。

  三、普通方法的反射

  (1)取得反射类Class。

  (2)方法使用Method类定义,获得方法使用getMethod(String name, Class… parameterTypes) ,用法很像获得构造方法,只是多出一个方法名的参数。

  (3)getReturnType()获得方法的返回值类型,getParameterTypes()获得所有形参类型。

  (4)用invoke调用方法第一个参数为需要调用的对象,第二个参数为用于调用的参数。

java什么是反射意思概念介绍

Java中的反射,我们常见是取得构造方法,成员变量,普通方法,还有对数组反射的操作。 1、反射的精辟定义:反射就是把Java类中的各种成分映射成相应的Java类。 2、Class实例表示正在运行的Java应用程序中的类和接口。所有的 3、反射除了
推荐度:
点击下载文档文档为doc格式

精选文章

  • it领域什么是si
    it领域什么是si

    信息产业其实是一个很大的产业集群。信息的感测技术、信息的识别技术、网络技术、信息处理技术和信息的施用技术等形成了不同的产业。就计算机技术

  • itil什么是变更管理
    itil什么是变更管理

    ITIL即IT基础架构库(Information Technology Infrastructure Library, ITIL,信息技术基础架构库)由英国政府部门CCTA(Central Computing and Telecommunications Agency)在20世纪80年代末

  • iphone什么是五码合一_苹果手机五码合一的意思
    iphone什么是五码合一_苹果手机五码合一的意思

    iphone手机有很多人使用,但是对于五码合一的意思可能就不了解了。下面小编为大家分享的是苹果手机五码合一的意思的内容介绍,欢迎阅读! iphone五码合

  • iphone5s什么是公开版
    iphone5s什么是公开版

    公开版是经历了测试阶段的软件或游戏,其平衡性或者运行BUG数量要比测试版少得多,一般软件或游戏公司都会在正式出品之前进行内测测试,以找出其中

245664