java反射的理解_Java反射的理解

一、什么是反射

反射是Java提供的动态获取对象和调用对象方法的功能。我们知道在Java中,获取对象的最常用的办法是通过关键字“new”,但这要我们事先将需要获取的对象写死在代码里,在代码运行期间无法改变。而Java的反射机制可以让我们动态获取对象,在代码运行期间才决定获取哪个对象。

二、反射的作用

Java引入反射机制,是为了提高程序的灵活性,减少代码之间的耦合度。比如我们要实例化一个Person类,如果不使用反射,我们只能通过关键字“new”进行实例化:

1 Person person = new Person();

被实例化的类写死在了代码中,运行期间不可更改。但如果我们使用反射,则代码如下:

1 public classTest1 {2 public static voidmain(String[] args) {3

4 Object object;5 String className = "person.Person";              //Person类的全类名

6

7 try{8 object = Class.forName(className).newInstance();   //获取Person类的运行时类并实例化

9 } catch(Exception e) {10 e.printStackTrace();11 }12 }13 }

反射支持我们使用全类名来获取对象,并且可以通过变量来传值。这样,我们就可以在代码的运行期间动态的决定实例化哪个类。不仅如此,我们还可以将类描述定义到配置文件中,如果想要实例化其他类,修改配置文件就可以了,而不需要修改代码再重新编译。这样就降低了代码之间的耦合度。

Java的反射机制还提供了很多方法可以获取运行时类、进行类实例化、获取类的属性、获取类的方法、获取类的构造函数等。

反射机制一般在框架中使用的较多,因为框架需要适应多种情况,对灵活性要求教高。理解好反射,是理解框架技术的基础。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值