Java中反射学习系列教程之二
凯哥java 凯哥java 2019-06-24
在上一篇文章《Java中反射学习系列教程之一》中我们学了什么是反射;反射中的反字怎么理解;以及反射的特点。今天我们主要讲的内容: 1:为什么需要反射 2:JDK文档中反射相关的API 一:为什么要使用反射? 1.1:Java中编译类型有哪些? Java中编译可以分为:静态编译和动态编译两种 静态编译: 在编译期间就已经确定了对象类型,只要绑定对象一致就可以编译通过。 如:Person p = new Person() 动态编译: 在运行期才确定类型进而来绑定对象。 动态编译最大限制的发挥了 Java 的灵活性,体现了多态的,可以减少类与类之间的的 耦合性。也可以理解为降低了耦合
综上所述:使用反射和好处:
1:最大限度的发挥了 Java 的灵活性
2:体现了面向对象的多态
3:降低了程序之间的耦合性
二:JDK文档中反射相关的API
相关API位置:在 java.lang.class 类中
通过反射获取对象完整包名
通过对象 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());
}
输出结果: