00:00
好了,那么有同学老师你怎么突然就拐到这儿呢?因为我说了,我们目前在讲反射机制,对吧,反射机制这一块呢,我们刚刚把这个field我们讲了,我们接下来再往下method。是不是哎,Method啊,那么这块呢,大家看看这里面的方法你就知道了。是不是有这样的方法呀?对吧,哎,有这样的方法,我觉得就得讲一讲,要不然一会儿我讲这个方法,你不知道干啥的呀。对吧,有这么一个点点点,你看看不懂就就废了,所以呢,我在这拐个弯,提前先给大家说一下啊,先说一下。好了,那接下来咱们继续再往下了,各位啊,咱们来看一看method method啊。嗯。Class,我们就叫做reflect reflect。Reflect test08吧,那么我们这边呢,写上啊,作为了解内容。
01:03
啊,就是反射什么呢,反射method。就是了解容啊。来。假如说现在呢,我们在这儿给一个。包各位啊,随便建一个包啊。这个包呢,我叫service包,Service包下呢,我给一个类,这个类呢叫user service user service就是用户业务类啊,叫用户业务类,我随便给一个啊,这里边主导我给一个方法,各位啊,主导方法啊,比如有一个方法啊,返回波尔类型叫log in。啊,参数跟上name和password,这是一个登录的方法,行吧?哎,登录的方法,那如果说用户名admin.equals username,并且说我们的密码是一二三点equals password。
02:04
Equals password啊,如果用户名密码是123 return一个true比登录成功,其他情况的话,Return一个false啊,表示登录失败啊,这个方法,这个登录方法,我随便写一个方法啊来这是一个登录方法,然后这边是用户名呢,对吧,这是个密码吧,然后true表示什么,登录成功对吧?False表示什么呀,登录失败。啊,我就就这么一个方法吧,然后接下来呢,再往下我们再给一个方法,假如退出系统的方法啊,VO lockout啊,这个方法是退出系统的方法,输出一句话我们叫对吧,系统已经安全退出,那么接下来这边呢,我们想要注释啊,这是一个退出系统的方法。啊,这是一个登录方法,那这个类呢,我就写完了,现在我要干啥呢?我要反你这个类中的方法,就是我要反射你这个类里边这俩方法我要反射出来。但是这个内容是属于了解内容啊,不需要掌握啊,不需要掌握。
03:01
对,不需要掌握啊,那么首先呢,我们要反射你这个类当中的这个方法,你得先把这个类拿到。这个类拿到的话,你把类名复制一下呗,对吧,哎,它有规律啊,反射基础,说这章节比较简单,不难啊,Class,我们叫什么user service的一个class。那class for name这块呢,我们写上一个类名,这个类名就是它。啊,我们这个异常先不用管了,现在呢,同学们我们想干啥呢?这是获取到这个类了,对吧?获取类了啊获取类了之后呢,接下来我们要获取什么呀?所有的field哦,对,不是field的获的所有的method,好各位你猜一下这个method数组怎么拿。你猜,我让你猜,你能不能猜出来,我觉得应该能猜出来。你那个field你会拿,这个method你就肯定会拿。那个叫做什么呀,Get declared。菲斯。
04:01
对不对,返回的是一个fail的数组吧。是不是,那你这个方法应该叫啥呀。叫declared methods。啊,来获取所有公开的啊,所有的method,包括私有的。来我们的user service这个类,它有一个方法叫get declared methods,你看。是吧,获取所有的方法。Get declared methods。看吗?你看是不是哎一样的,那么这是几个方法呢?MYS点什么呀,点size。啊,不是不是什么点size.les这是数数组啊,点Les这是几个方法来看一眼看一眼。两个。对吧,是不是这个结果是二啊,对吧?哎,会就两个方法,那么接下来我们能不能便利方法呢?便利method for,循环method method method。
05:12
Methods,那么现在我问大家,我想获取你这个方法,这个现在便利,这个method属于啥,属于你这个代码啊。对吧,我想拿你这个方法的名字怎么拿各位。获取方法名我觉得你猜也能猜到吧?点get name吧。是不是来拿一下,你看一个方法叫log in,一个叫log out。我觉得你猜就行了,这个这章节非常的容易啊,容易对来猜就行了啊,来获取防伪名,那拿到防伪名之后,接下来我想拿反馈之类型。诶,返回这又是一个类型了,又到类型了,各位。还记不记得我们刚才拿这个user这个类,呃,这个student这个类里边这个属性的类型。
06:02
这次我们又到拿这个类型了,这个方法的一个返回值类型,我们要拿。那你怎么怎么拿呀,各位,我们要获取方法的返回值类型,你猜这个方法名叫啥?Method,点什么get什么?你猜返回值类型。Get返回值类型。我看咱们班有没有能猜到的。来,大胆猜,来,动手别懒,动个手好不好?动个手啊,敲点咱们互动一下好不好,别懒啊。Multifare。不不不不不,我获取的不是这个修饰符。我获取的是返回值类型。同学啊,我获取的是返回值类型,我获取的是这个不是休止符啊。嗯,还是呗。
07:01
哦。你看他有个方法啊。返回是哪个呀。哇,志皇太牛了,来看看有没有啊,Get return,诶,还真有。你看获取返回值类型。它的这个方法的返回值,你看get return type返回个class你看。是不是,哎,返回class。点get simple name。他既然是class,那就可以这样吗?是不是matter get return type太神奇了啊,太神奇了,来获取返回值类型,然后get simple name来拿这个简名就行了,运行一下。你只要大胆的想象就行,你看这个方法log in,它的反馈类型是不玩,而你的logout反馈类型是VO的,你看它都能拿到,那么同学们又到这儿了,拿到它了,拿到它了,你想拿这个,你怎么拿?
08:06
它是修饰符列表啊,所以说这块你可以去获取什么呀,叫做修饰符列表怎么获取呀,Method。Mo fear.to string直接写了啊,Mo fear.to string直接method.get Mo就行了,这个method是这个方法,就get mod fears这个方法就可以拿到所有的修饰符法来看一看一眼。你看public不类型log。对不对?好,问题来了,各位,最难获取的是这个方法是参数不好获取。对吧。好,各位,不过我觉得你猜也能猜到,方法修饰符有了,反馈类型有了,方法有了,再往下就是方法的什么修饰符列表吧,方法的修饰符列表,一个方法的参数可能会有多个啊,一个方法的参数可能会有多个。
09:07
那你method怎么get get哪个各位?来,你再猜一下,来各位动个手来动个手,来来get get什么?Get参数列表应该是get什么参数列表?来哪个方法名。Get参数列表。而且你应该能猜测到它的返回值类型是什么,是个数组,应该是。多个吗?他多个应该是个数组啊。英语单词这个参数,英语单词参数怎么怎么说。一太棒了,太棒了,太棒啊,太棒了,太棒了,Parameter parameter,好,各位啊,停一停,停一停,我问大家问,我再问大家问题啊。参数列表当中,这个变量名重要还是数据类型重要?
10:01
哪个重要?起决定性作用的是数据类型还是变量名?数据类型,数据类型是吧?好嘞,那么我问大家一个问题。嗯。这个既然提到类型,返回的是不是一定是class?而且是个数组对吧。你应该获取的是参数,参数的类型吧。列表吧,是返回的class数组啊。是反应应该是个数组吧,是一个class数组吧。类型吗?对吧?来我们看看有没有这个方法getter。获取参数的类型,你看没。看了。哎,获取参数的类型。
11:04
返回的是一个parameter type。那么拿到这为什么这这个方法有一个数组呢?因为一个方法有多个参数。对吧,所以这是个数组,但这个数组长度有可能是零,像这个数组它的长度就是零。对吧,你可以对它进行循环呀,循环对不对,哎啊parater type对吧?哎,Parater type3叫参数的类型,那么这个时候我们能不能输出参数的名字呀。它是个class啊,所以这边有个方法叫get simple name。是不是simple内吗?哎,你就输出就行了,你看第一个方法它的参数个数是几个呀。两个是不是,你看public不玩类型log,两个参数string string啊。
12:03
第二个方法,你看就没有参数对吧,Public voidout那个参数是。对吧,你看很巧妙,这样的话我们就反就反method,就把这个类的method反出来。
我来说两句