Java反射基础知识
反射机制就是可以把一个类,类的成员(属性、方法)当成一个对象来操作,也就是说,类,类的成员,我们在运行的时候可以动态的去操作它们。
所有的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反射基础知识的更多相关文章
- java反射基础知识(五)反射应用实践
		详解Java反射各种应用 Java除了给我们提供在编译期得到类的各种信息之外,还通过反射让我们可以在运行期间得到类的各种信息.通过反射获取类的信息,得到类的信息之后,就可以获取以下相关内容: Cl ... 
- java反射基础知识(四)反射应用实践
		反射基础 p.s: 本文需要读者对反射机制的API有一定程度的了解,如果之前没有接触过的话,建议先看一下官方文档的Quick Start. 在应用反射机制之前,首先我们先来看一下如何获取一个对象对应的 ... 
- java反射基础知识(三)
		原文地址:http://tutorials.jenkov.com/java-reflection/index.html http://www.cnblogs.com/penghongwei/p/329 ... 
- java反射基础知识(二)
		1. 了解 Java 中的反射 1.1 什么是 Java 的反射 Java 反射是可以让我们在运行时获取类的函数.属性.父类.接口等 Class 内部信息的机制.通过反射还可以让我们在运行期实例化对象 ... 
- java反射基础知识(一)
		一.反射 反射:JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为 ... 
- 什么才是java的基础知识?
		近日里,很多人邀请我回答各种j2ee开发的初级问题,我无一都强调java初学者要先扎实自己的基础知识,那什么才是java的基础知识?又怎么样才算掌握了java的基础知识呢?这个问题还真值得仔细思考. ... 
- Java 多线程——基础知识
		java 多线程 目录: Java 多线程——基础知识 Java 多线程 —— synchronized关键字 java 多线程——一个定时调度的例子 java 多线程——quartz 定时调度的例子 ... 
- java必备基础知识(一)
		学习的一点建议: 每一门语言的学习都要从基础知识开始,学习是一个过程,"万丈高楼平地起",没有一个好的地基,想必再豪华的高楼大厦终究有一天会倒塌.因此,我们学习知识也要打牢根基,厚 ... 
- java部分基础知识整理----百度脑图版
		近期发现,通过百度脑图可以很好的归纳总结和整理知识点,本着学习和复习的目的,梳理了一下java部分的知识点,不定期更新,若有不恰之处,请指正,谢谢! 脑图链接如下:java部分基础知识整理----百度 ... 
随机推荐
- mysql5.7基于gtid主从重做
			master上备份mysql/data/Percona-5721/scripts/xtra_sohmysql_fullbak.sh scp 备份文件到备机 关闭slave service mysql ... 
- Mono的CustomConditionAttribute使用
			1.Mono的CustomConditionAttribute使用有诸多的限制,没有在XML中定义来的灵活 2.CustomConditionAttribute定义的子类必须和ExtensionAtt ... 
- 使用阿里云Java SDK 实现 DDNS
			本代码的实现前提: 1.拥有阿里云域名,且获取了Access Key 及 Access Secret 2.能获取外网IP的页面地址(注意:ip138.com的实际包含ip地址为http://2018. ... 
- 【Python爬虫】01:网络爬虫--规则
			Python网络爬虫与信息提取 目标:掌握定向网络数据爬取和网页解析的基本能力. the website is the API 课程分为以下部分: 1.requsets库(自动爬取HTML页面.自动网 ... 
- asp.net 本地服务字段调用(WebSerice)的小问题
			当有全局变量时,如:protected static Dictionary<string, string> SalesMail = new Dictionary<string, st ... 
- (二)获取Access_token
			获取access_token access_token是公众号的全局唯一接口调用凭据,公众号调用各接口时都需使用access_token.开发者需要进行妥善保存.access_token的存储至少要保 ... 
- expected_conditions模块提供了判断页面元素的16种方法
			1.title_is: 判断当前页面的title是否完全等于(==)预期字符串,返回布尔值2.title_contains : 判断当前页面的title是否包含预期字符串,返回布尔值3.presenc ... 
- NumPy基础
			一.NumPy ndarray (一)生成ndarray 表 数组生成函数 函数 描述(默认数据类型是float64) array 将输入数据(序列型对象)转换为ndarray,若不显示的指定数据类型 ... 
- Android Jetpack 组建介绍(二)——Lifecycler
			参考Android Jetpack架构组件之 Lifecycle(源码篇) 源码分析 关于Lifecycle的使用考上一篇文章Android Jetpack框架之 Lifecycles(使用篇),从使 ... 
- RocketMQ入门(消费者)_3
			消费者角色: 1. 推式(一般建议用推式) 2. 拉式 消费模式: 1. 集群(cluster) --均衡负载消费 2. 广播(broadcasting) --发布和订阅 ... 
