首页 > 编程语言 > 详细

java知识学习49-反射

时间:2021-05-03 14:37:26      阅读:26      评论:0      收藏:0      [点我收藏+]

反射的概述:是指在运行时去获取一个类的变量和方法信息。然后通过这些信息来创建对象,调用方法的一种机制。由于这种动态性,可以极大增强程序的灵活性,程序可以不用在编译期就完成确定,所以可以在运行期进行扩展。

  技术分享图片   我们通过Class类的对象使用对对应类的方法或变量,就是反射操作

 

 

 

获取Class类对象:若想要通过反射去使用一个类,首先就得获取到该类的字节码文件对象,也就是类型为Class类型的对象。

  主要有三种方式获取Class类型对象:

    技术分享图片

 

 

    范例:

 

      技术分享图片

  

 反射获取构造方法和使用的方式:

  获取构造方法主要有四种方式:其中两种是获取public的修饰的构造方法,另外两种是可以获取所有的构造方法(如private、default默认的等)

    技术分享图片

  范例:Student类中的变量、方法、构造方法都分别有public、private、default关键字修饰的。

    技术分享图片

   

  注:

    1、基本数据类型也是可以通过.class得到对应的Class类型,如int.class。

    2、私有构造方法直接new newInstance 运行时会报错,可以通过Constructor的setAccessible(传入参数为true,可以取消对是否私有的访问检查)方法进行暴力反射

 

反射获取成员变量和使用的方式:

  获取成员变量主要有四种方式:其中两种是获取public的修饰的成员变量,另外两种是可以获取所有的成员变量(如private、default默认的等)

    技术分享图片

  范例:

    技术分享图片

 

 

反射获取成员方法并使用:

  获取成员方法主要有四种方式:其中两种是获取public的修饰的成员方法,另外两种是可以获取所有的成员方法(如private、default默认的等)

    技术分享图片

  范例:

    技术分享图片

 

 

反射的应用:

  1、如可以往ArrayList<Integer>集合中添加String类型的数据。

  技术分享图片

 

   

  2、通过配置文件来运行指定的内容(巧用反射的灵活性)

  案例:通过获取配置文件class.txt中的类路径名和方法,然后调用其中的方法(想调用哪个类或方法,就配置哪个,很好的增强了代码灵活性)

    学生类:

    技术分享图片

    老师类:

    技术分享图片

    配置文件:class.txt

    技术分享图片

    测试类:

    技术分享图片

 

 

 

 

 

  

java知识学习49-反射

原文:https://www.cnblogs.com/blogofzxf/p/14726952.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!