Android之反射机制

1.疑问

在进行Android应用编写的过程中,常常听到专业术语"反射机制",是否也有同样的以下几点疑问

  • A. 反射机制是什么?

  • B. 反射机制能带来什么好处?

  • C. 反射机制怎么使用?具体有什么方法?

2.Java的编译运行过程

在了解反射机制前,我们先了解下JAVA的编译运行过程,也就是经常提到的一次编译到处执行,如下:

  • .java的源代码文件被编译成.class文件字节码
  • JVM中的类加载器加载各个类.class字节码文件
  • 加载完毕之后,字节码在JAVA虚拟机JVM中执行

例如:

Class类的对象表示正在运行的Java程序中的类或接口,也就是任何一个类被加载时,即将类的.class文件(字节码文件)读入内存的同时,都自动为之创建一个java.lang.Class对象。

Class类没有公共构造方法,其对象是JVM在加载类时通过调用类加载器中的defineClass()方法创建的

3.Java反射机制

在了解JAVA编译运行过程后,下面我们来看看对于开篇提到的反射机制的几个问题

  • A. 反射机制是什么?

反射机制就是对编译后的.class字节码进行解剖,解剖出方法(构造方法等),成员变量、修饰符等,在解剖先加载相关类的字节

  • B. 反射机制能带来什么好处?

因为通过编译后的.class文件仅有public方法,对于隐藏的方法及静态修饰的变脸或方法,可以使用反射机制调用,从而可以更快捷的实现功能

  • C. 反射机制怎么使用?具体有什么方法?

关于反射机制具体如何使用及具体的方法,先了解以下相关内容,在最后章节中举例说明

3.1 获取类的对象

Java中,每个class都有一个相应的Class对象。也就是说,当我们编写一个类,编译完成后,在生成的.class文件中,就会产生一个Class对象,用于表示这个类的类型信息。

反射机制获取类的对象三种方法:

  • 通过forName方法获取
Class c = Class.forName("类名")
  • 通过class属性获取
Class c = 类名.
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值