Java反射机制详解上篇
2017-08-19 18:17
267 查看
1反射机制是什么
反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。在面向对象的世界里,万事万物皆对象.在java语言里,静态的成员,普通数据类型是不是对象呢?
类又是谁的对象呢?
首先类是对象,类是java.lang.Class类的实例对象.
新创建一个Foo类
Foo这个类也是一个实例对象,是Class类的实例对象,这个对象在官网被称为(class type).
反射是java程序开发语言的特性之一,它允许运行中的java程序获取自身的信息,并且可以操作类或者对象内部的属性.
反射的核心是JVM在运行时才动态加载类或调用方法/访问属性,它不需要事先(写代码的时候或编译期)知道运行对象是谁。
了解反射其实需要了解JVM,不过一般的资料不会在这一部分讲到JVM,毕竟学习也是要从浅入深的.
2反射机制能做什么
反射机制主要提供了以下功能:
在运行时判断任意一个对象所属的类;
在运行时构造任意一个类的对象;
在运行时判断任意一个类所具有的成员变量和方法;
在运行时调用任意一个对象的方法;
生成动态代理。
注意;是运行时获取而不是编译时获取.其实很多时候我们直接用eclipse写代码忽略了编译的过程
在Eclipse,当我们输入一个点的时候(比如 a.) 编译器就会自动列出它的属性和方法,这里就会用到反射
3反射机制的相关API (在这里只说反射机制五种功能的前两种)
java的反射机制的实现要借助于4个类: class,Constructor,Field,Method;
通过一个对象获得完整的包名和类名
[code=java;toolbar:false">package cn.xins08.boke;public class TestReflect { public static void main(String[] args) { TestReflect testReflect = new TestReflect(); System.out.println(testReflect.getClass().getName()); // 结果:cn.xins08.boke.TestReflect }}
[b]
相关文章推荐
- Java反射机制详解上篇
- Java反射机制详解 及 Method.invoke解释
- WCF客户端运行时架构体系详解[上篇]
- Java反射机制详解
- 谈谈分布式事务之三: System.Transactions事务详解[上篇]
- java反射机制详解 及 Method.invoke解释 getMethod
- Java反射机制详解
- Java反射机制的实现详解
- java反射机制Class类的用法详解
- Java反射机制详解
- 转载(java反射机制详解)
- Java反射机制详解
- Java反射机制详解
- Java反射机制及Method.invoke详解
- Java反射机制详解
- java反射机制详解
- Java反射机制详解
- java反射机制详解
- Java反射机制详解
- Java反射机制深入详解