这是一份超全面详细的Java反射机制学习指南!
Java反射说的是在运行状态中,对于任何一个类,我们都能够知道这个类有哪些方法和属性。很多千锋武汉Java培训机构的学员在面试中都会被问到Java反射机制这个问题,为了帮助大家更好的掌握这个知识点,小千整理了一些资料分享给大家。
一、反射概念
在正式讲解反射之前,为了很好的去理解它我们先从一个案例说起。请看下面的代码:
这是一个最简单不过的类,当我们使用的时候直接new出来一个User对象即可。因为这个类是我们自己定义的,所以在使用的时候我们知道User有两个字段name和age,还有无参和有参构造方法,另外的test方法我们也可以直接调用(因为其是public)。
现在出现一个问题,如果这个user类不是我们自己定义的,我们从外部看不到里面有什么东西,而且我们又想去知道内部长什么样,比如说有几个字段、方法、构造方法、共有还是私有的等等,这时候该怎么办呢?这时候java语言在设计的时候为我们提供了一个机制,就是反射机制,他能够很方便的去解决我们的问题。
二、深入分析java反射机制
1、获取Class类
在java中万事万物皆对象,User user=new User()一行代码我们知道了user是User类的实例对象,通过Student stu=new Student()我们知道了stu是Student的实例对象,但是我们想过没,User和Student又是谁的对象呢?没错就是Class类的实例对象。那这个Class类是什么东西,内部长什么样子呢?这时候我们很自然的联想到使用反射机制。使用反射机制就可以获取到这个class。
这里有三种方式可以获取这个Class,我们来看一下代码:
上面的c1、c2、c3都是Class类的实例,表示的都是User类。
当然,不仅仅是User这些类,对于基本数据类型甚至是包括void我们也可以使用这个方法。
现在就可以直接创建User类的实例了。
User user = (User)c1.getInstance();
现在我们对反射机制中获取Class类的方法进行一个总计
2、获取类的方法
现在通过反射看一下User类内部的样子,打印一下(把这个操作封装在了一个方法中):
下面我们把我们的User类传进去,打印一下。
我们总结一下反射方法。
3、获取类的属性
(1)获取所有属性
上面有两种获取属性的方法。重点是for循环。我们来测试一下
直接就会输出我们的字段类型和名称。
(2)获取指定属性
在这里我们的User类中name、age字段增加getter和setter方法
然后我们测试一下
在这里,我们在printFieldMsgBySelf方法中通过反射重新设置了age年龄的值,输出之后已成功更改。
4、获取类的构造方法
然后我们同样的测试一下
跟我们之前的构造方法一样。
5、获取User类的父类和接口
我们在这里定义一个Human类(里面什么也没有),然后定义一个UserInterface接口,让User继承它就好了。
然后我们在Test中去测试一下就可以了,测试方法很简单,我们只需要调用这个方法就可以。
在上面的案例中,我们使用反射机制能够获取类的方法、字段、构造方法、父类和接口,当然也可以获取一些其他的信息。不知道你是否掌握了Java反射机制这一知识点,想了解更多Java行业动态和学习资料,欢迎来千锋武汉Java培训机构免费试听,亲身实地感受授课品质,了解学员学习情况。

猜你喜欢LIKE
相关推荐HOT
更多>>
武汉it培训价格多少?零基础能学吗
武汉it培训价格多少?武汉it价格一般在两万左右,学习周期一般在五个月左右,当然it学习的费用也受很多因素的影响,所以这并不是衡量一个IT培训...详情>>
2023-01-17 16:28:00
如何成为Java工程师?推荐来千锋武汉Java培训机构!
当前IT的发展,已经成为我国的重大产业之一,很多的企业为了争夺优秀的专业人才,不惜给出丰厚的薪资待遇。据统计,每年IT行业的人才缺口可达到...详情>>
2022-07-06 11:58:00
从三个方面分析,参加武汉Java培训班有用吗?
很多人都向往Java编程的广阔从业前景,却苦于不懂Java编程知识,一直在自学和参加培训中纠结。今天千锋武汉Java培训小编就跟大家一起来讨论下这...详情>>
2022-07-04 14:49:00
如何判断自己适不适合学武汉Java培训?
随着IT行业日新月异的发展,不少人都把目光投向了薪资优越的IT软件行业。在招聘网站的数据中,对Java开发人员一直是供不应求,而且Java开发人员...详情>>
2022-07-01 10:50:00热门推荐
什么是web前端开发?在哪学效果比较好
沸想转行学it会不会有更多的就业机会
热JAVA培训班多少钱?JAVA培训班费用的影响因素
热如何快速学习java?学习java主要学什么
新学java有什么用,怎样才能学好java
java学费大概多少,前后需要学习多少时间
学前端好还是后端好?哪个更吃香呢?
武汉前端培训费用,值不值得学呢?
哪里有较好的程序员培训班?如何选择呢?
武汉程序员培训班要多少钱?报名很贵吗
软件开发需要什么学历?学历的重要性
it培训费用大概多少钱?报培训班的好处有哪些
学it一般要多少钱?专业怎么选
武汉it培训价格多少?零基础能学吗
技术干货






