java 反射教程_Java中反射学习系列教程之二

原标题:Java中反射学习系列教程之二

b57cd4a970823e662e1f76114b7b6a97.png

在上一篇文章《Java中反射学习系列教程之一》中我们学了什么是反射;反射中的反字怎么理解;以及反射的特点。今天我们主要讲的内容:

1:为什么需要反射

2:JDK文档中反射相关的API

一:为什么要使用反射?

1.1:Java中编译类型有哪些?

Java中编译可以分为:静态编译和动态编译两种

静态编译:

在编译期间就已经确定了对象类型,只要绑定对象一致就可以编译通过。

如:Person p = new Person()

动态编译:

在运行期才确定类型进而来绑定对象。

动态编译最大限制的发挥了 Java 的灵活性,体现了多态的,可以减少类与类之间的的 耦合性。也可以理解为降低了耦合

a62f102f431484c9a9304e2cb3bbc089.png

综上所述:使用反射和好处:

1:最大限度的发挥了 Java 的灵活性

2:体现了面向对象的多态

3:降低了程序之间的耦合性

二:JDK文档中反射相关的API

2ea782bfb12e5c202fc7cd8f6069571d.png

相关API位置:在 java.lang.class 类中

2a999c6651ab5fdc732657990370b726.png

通过反射获取对象完整包名

通过对象 getClass.getName()或 getClass.toString()方法

Demo 演示:

/**

* 通过反射获取到对象的全包名

*/

@Test

public void () throws Exception{

Person person = new Person();

log.info("person 对象的全包名为:{}",person.getClass().toString());

log.info("person class getName:{}",person.getClass().getName());

}

f12b65aae1094bd2205f116feedea3d2.png

输出结果:

责任编辑:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值