反射机制就是可以把一个类,类的成员(属性、方法)当成一个对象来操作,也就是说,类,类的成员,我们在运行的时候可以动态的去操作它们。

所有的Java类都继承了Object类,在Object类中定义了一个getClass()方法,该方法返回一个类型为Class类型的对象实例,例如:Class textFieldC = textField.getClass();

利用Class类型的对象实例,可以访问该对象的textField对象的描述信息,可以访问的主要描述信息如表所示:

通过反射可访问的主要描述信息
组成部分 访问方法 返回值类型 说明
包路径 getPackage() Package对象 获得该类的存放路径
类名称 getName() String对象 获得该类的名称
继承类 getSuperClass() Class对象 获得该类的父类
实现接口 getInterfaces() Class型数组 获得该类实现的所有接口
构造方法

getConstructors()

getConstructor(Class<?>...parameterTypes)

getDeclaredConstructors()

getDeclaredConstructor(Class<?>...parameterTypes)

Constructor型数组

Constructor对象

Constructor型数组

Constructor对象

获得所有权限为public的构造方法

获得权限为public的指定构造方法

获得所有的构造方法,按声明顺序返回

获得指定构造方法

方法 

getMethods()

getMethod(String name, Class<?>...parameterTypes)

getDeclaredMethods()

getDeclaredMethod(String name, Class<?>...parameterTypes)

Method型数组

Method对象

Method型数组

Method对象

获得所有权限为public的方法,包含从父类继承的方法

获得权限为public的指定方法

获得所有方法,按声明顺序返回,不包含从父类继承的方法

获得指定方法

成员变量

getFields()

getField(String name)

getDeclaredFields()

getDeclaredField(String name)

Field型数组

Field对象

Field型数组

Field对象

获得所有权限为public的成员变量,包含从父类继承的成员变量

获得权限为public的指定成员变量

获得所有成员变量,按声明顺序返回,不包含从父类继承的成员变量

获得指定成员变量

内部类

getClasses()

getDeclaredClasses()

Class型数组

Class型数组

获得所有权限为public的内部类、

获得所有内部类

内部类的声明类 getDeclaringClass() Class对象 如果该类为内部类,则返回它的成员类,否则返回null

Java反射基础知识的更多相关文章

  1. java反射基础知识(五)反射应用实践

    详解Java反射各种应用   Java除了给我们提供在编译期得到类的各种信息之外,还通过反射让我们可以在运行期间得到类的各种信息.通过反射获取类的信息,得到类的信息之后,就可以获取以下相关内容: Cl ...

  2. java反射基础知识(四)反射应用实践

    反射基础 p.s: 本文需要读者对反射机制的API有一定程度的了解,如果之前没有接触过的话,建议先看一下官方文档的Quick Start. 在应用反射机制之前,首先我们先来看一下如何获取一个对象对应的 ...

  3. java反射基础知识(三)

    原文地址:http://tutorials.jenkov.com/java-reflection/index.html http://www.cnblogs.com/penghongwei/p/329 ...

  4. java反射基础知识(二)

    1. 了解 Java 中的反射 1.1 什么是 Java 的反射 Java 反射是可以让我们在运行时获取类的函数.属性.父类.接口等 Class 内部信息的机制.通过反射还可以让我们在运行期实例化对象 ...

  5. java反射基础知识(一)

    一.反射 反射:JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为 ...

  6. 什么才是java的基础知识?

    近日里,很多人邀请我回答各种j2ee开发的初级问题,我无一都强调java初学者要先扎实自己的基础知识,那什么才是java的基础知识?又怎么样才算掌握了java的基础知识呢?这个问题还真值得仔细思考. ...

  7. Java 多线程——基础知识

    java 多线程 目录: Java 多线程——基础知识 Java 多线程 —— synchronized关键字 java 多线程——一个定时调度的例子 java 多线程——quartz 定时调度的例子 ...

  8. java必备基础知识(一)

    学习的一点建议: 每一门语言的学习都要从基础知识开始,学习是一个过程,"万丈高楼平地起",没有一个好的地基,想必再豪华的高楼大厦终究有一天会倒塌.因此,我们学习知识也要打牢根基,厚 ...

  9. java部分基础知识整理----百度脑图版

    近期发现,通过百度脑图可以很好的归纳总结和整理知识点,本着学习和复习的目的,梳理了一下java部分的知识点,不定期更新,若有不恰之处,请指正,谢谢! 脑图链接如下:java部分基础知识整理----百度 ...

随机推荐

  1. 理解Linux文件权限

    任何完整的系统都应该具备有某种形式的安全性.必须用过某种机制来保护文件不被未授权的用户查看或修改:Linux系统遵循了Unix的文件权限的方法,来根据用户与用户组授权,实现文件安全访问. 1.Linu ...

  2. ssh 公钥无秘登录问题

    1. 验证服务启动,网络端口连接正常 可以使用nc,telnet,或者密码模式的ssh来验证 2. 验证ssh client端的配置正确 可以尝试登录另外一台主机, 或者本机自校验 3. 验证ssh ...

  3. 【HQL】函数汇总

    背景 抽空整理一篇HQL函数及常用的小技巧 COALESCE COALESCE(T v1, T v2, -) 返回参数中的第一个非空值:如果所有值都为NULL,那么返回NULL

  4. SQLALchemy中关于复杂关系表模型的映射处理

    映射在第五步,我们还是一步一步来哈 一. 关系介绍 举一个比较经典的关系,部门与员工(以下是我的需求情况,算是把该有的关系都涉及到了) 1.每个部门会有很多成员(这里排除一个成员属于多个部门的情况) ...

  5. Python爬虫与数据分析之模块:内置模块、开源模块、自定义模块

    专栏目录: Python爬虫与数据分析之python教学视频.python源码分享,python Python爬虫与数据分析之基础教程:Python的语法.字典.元组.列表 Python爬虫与数据分析 ...

  6. 将String类型的json字符串转换成java对象

    1,import com.fasterxml.jackson.databind.ObjectMapper; ObjectMapper mapper = new ObjectMapper(); Mycl ...

  7. OS模块学习

    import os,sys s = os.getcwd() #获取当前工作目录,即当前python脚本工作的目录路径 # print(s) # os.chdir('..') #改变当前工作目录 # s ...

  8. for 和while循环 if else

    for和 while循环 当你知道循环次数的话就用for循环, 不知道的时候用while循环,while必须要有结束条件 a +=1  等于 a =a+1 for i in  xxx: i:是一个变量 ...

  9. 尚硅谷springboot学习34-整合SpringData JPA

    SpringData简介

  10. html5下F11全屏化的几点注意

    1.实现全屏化 var docElm = document.documentElement; //W3C if (docElm.requestFullscreen) { docElm.requestF ...