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

Java身上指的是我们可以于运行时加载、探知、使用编译期间完全未知的classes。换句话说,Java程序可以加载一个运行时才得知名称的class,获悉其完整构造(但不包括methods定义),并生成其对象实体、或对其fields设值、或唤起其methods。

Java反射机制主要提供了以下功能: 在运行时判断任意一个对象所属的类;在运行时构造任意一个类的对象;在运行时判断任意一个类所具有的成员变量和方法;在运行时调用任意一个对象的方法;生成动态代理。

。当一个class被加载,或当加载器(class loader)的defineClass()被JVM调用,JVM 便自动产生一个Class 对象。

Class是Reflection故事起源。针对任何您想探勘的类,唯有先为它产生一个Class 对象,接下来才能经由后者唤起为数十多个的Reflection APIs。这些APIs将在稍后的探险活动中一一亮相。

Java允许我们从多种管道为一个class生成对应的Class object。图2是一份整理。
Class object 诞生管道
示例:
1)运用getClass()
注:每个class 都有此函数
String str = "abc";
Class c1 = str.getClass();
2)运用Class.getSuperclass()
Button b = new Button();
Class c1 = b.getClass();
Class c2 = c1.getSuperclass();
3)运用static method------Class.forName()(最常被使用)
Class c1 = Class.forName ("java.lang.String");
Class c2 = Class.forName ("java.awt.Button");
Class c3 = Class.forName ("java.util.LinkedList$Entry");
Class c4 = Class.forName ("I");
Class c5 = Class.forName (".class");
4)运用primitive wrapper classes的TYPE 语法
Class c1 = Boolean.TYPE;
Class c2 = Byte.TYPE;
Class c3 = Character.TYPE;
Class c4 = Short.TYPE;
Class c5 = Integer.TYPE;
Class c6 = Long.TYPE;
Class c7 = Float.TYPE;
Class c8 = Double.TYPE;
Class c9 = Void.TYPE;
 
 
 
 
  • Java 反射 - ImportNew

    2016年1月24日 - 加载完类之后, 在堆内存中会产生一个Class类型的对象(一个类只有一个Class对象), 这个对象包含了完整的类的结构信息,而且这个Class对象就像一面镜子,...
    www.importnew.com/176....  - 百度快照
  •  

最新文章

  1. 设计模式之单例模式(Singleton)
  2. python快速生成注释文档的方法
  3. JavaOne_2016演讲视频:
  4. 用super daemon xinetd进行安全配置
  5. 《BackboneJS框架的技巧及模式》(4)完结篇
  6. 关于Core Data的一些整理(三)
  7. [HeadFrist-HTMLCSS学习笔记][第一章Web语言:开始了解HTML]
  8. html系列教程--元素
  9. 函数FindFirstFile
  10. jquery.zclip.js 不起作用
  11. maridb安装审计audit插件
  12. Linux三种网络连接模式
  13. 面试题:两种方法计算n!
  14. VS2012添加数据库连接时报错,未能加载文件或程序集microsoft.sqlserver.management.sdk.sfc
  15. es6学习日记1
  16. Nginx CONTENT阶段 static模块
  17. Android中pm命令用法(转)
  18. [hbase] 查询数据
  19. Qt Quick快速入门之qml与C++交互
  20. 物联网学习之路——物联网通信技术:NBIoT

热门文章

  1. codeforces 898F Hash
  2. 267C
  3. spring 监听器 IntrospectorCleanupListener简介
  4. 3-4 第三天 Generator生成器
  5. git的常用命令。。
  6. net .异步委托知识
  7. 努比亚(nubia) M2青春版 NX573J 解锁BootLoader 并进入临时recovery ROOT
  8. php常见报错
  9. jqurey事件 ready方法用法
  10. Deutsch lernen (09)