前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java中反射学习系列教程之一

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

作者头像
凯哥Java
发布2019-06-28 14:49:41
3310
发布2019-06-28 14:49:41
举报
文章被收录于专栏:凯哥Java

在上一个系列教程-《Java中注解学习系列教程》中解析自定义注解的时候用到了Java中一种技术--反射。其实在很多源码中,我们都能看到反射的身影。那么什么是反射?为什么要用反射?反射都有哪些常用API?从本文开始我们将系统的介绍Java中反射技术。

Java反射学习系列教程主要内容:

138204fc4a8de80e5532f385b1684318.png
138204fc4a8de80e5532f385b1684318.png

本文主要内容:

一:什么是反射?

二:反射的特点是什么?

一:Java中反射是什么

反射中的反怎么理解

既然有反射及反着来,那么什么是【正】呢?请看下面代码:

Person p = new Person();

这个代码,我们大家都很熟悉,在刚学Java的时候声明对象及对象引用的时候老师就说了,声明对象要使用关键字 new来创建对象。

其实现在我们来分析上面这行代码

等号左边 Person p:我已经知道我需要的是一个Person对象,使用p这个变量来代替Person对象。

在看等号右边new Person():new 是关键之就不多说了,而new出的对象就是我需要的Person对象了。

如果我们在new的时候使用其他对象会怎么样?

57760eb0fbf0dec84038711375b1c85c.png
57760eb0fbf0dec84038711375b1c85c.png

会提示cannot resolve symol 的错误。不能转换的。

以上流程就是我们说的【正】流程创建对象。

我们可以分析得到:

在使用对象的时候,已经知道需要使用的对象类型。如上图中:已经知道使用的对象是Person而不是Student对象了。也就是说,在运行时候,需要什么对象,我们就创建什么对象。

反射中的反的理解:在使用的之前,提前不知道需要使用什么类型的对象。只是在调用的时候,才知道要调用的对象类型。这种反其道而行的就是反射中反的理解。

反射定义

先来看看百科上是怎么定义的

99757dec332115e90ed4d351ad6811e8.png
99757dec332115e90ed4d351ad6811e8.png

也可以这么理解:

反射就是.class文件在运行的时候,进行拆分。

可以理解为反射是在运行的时候对.class文件进行解剖。将对象中的构造器、方法、属性等解剖成一个一个对象。在运行的时候,可以动态的获取属性或方法

二:反射的特点

12b2b0a718ed9f5bfb5c900a867b7e6d.png
12b2b0a718ed9f5bfb5c900a867b7e6d.png

简单的来说:

在运行的时候可以动态的创建任意对象并调用其方法,还可以生成动态代理

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-06-23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一:Java中反射是什么
    • 反射中的反怎么理解
      • 反射定义
        • 二:反射的特点
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档