Java中反射学习系列教程之二

  • 作者: 凯哥Java
  • 反射
  • 时间:2019-06-24 09:34
  • 1542人已阅读
简介 在上一篇文章《Java中反射学习系列教程之一》中我们学了什么是反射;反射中的反字怎么理解;以及反射的特点。今天我们主要讲的内容:1:为什么需要反射2:JDK文档中反射相关的API一:为什么要使用反射?1.1:Java中编译类型有哪些?Java中编译可以分为:静态编译和动态编译两种静态编译:在编译期间就已经确定了对象类型,只要绑定对象一致就可以编译通过。 如:Personp=newPers

在上一篇文章《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()); 
}

输出结果: 


Top Top