00:00
那么我们能不能反编译呢,各位?对吧,假如说我们现在在这反编译,能反编译吗?来class啊,我们叫reflect test。零八了零九啊,这个内容也是了解内容。各位注意听啊,了解一下啊,不需要掌握啊,不需要掌握来,那这块的话,咱们来看一下啊,现在呢,有这么一个类是测试程序,有这么一个类,我们要对它进行反射反编译啊反编译那么注意各位啊。方法体里边的东西反编译,你现在没那个能力。反编译不出来,你只能反编译一个方法的签名。听懂了吗?这个方法里面的方,这个类当中的方法的签名,你可以反编译出来,方法体当中的内容,这个业务逻辑代码你反编译不出来。啊,大家注意这个啊,来来我们这边看一下各位啊,Class叫user service,什么class。
01:03
那等于class.for name,这个name就是这个类名啊,这个类名是谁就是他呀。是不是我们copy一下,然后接下来拿过来放在这个位置上,然后接下来我们这边异常简单处理一下。然后老规矩还是需要准备个什么string builder,各位既然不需要掌握啊,我在这就快速的写一写了,New一个string builder new完string builder之后呢,S点追加去追加谁呀,追加一个。追加一个什么呢?最起码你这个类你得加过来吗?就这个类是不是得加过来放这儿吧。是不是放这儿啊好,那么在这A是不是追加追加一个结束啊。对吧?哎,那么这边这个修饰符,这是类的修饰符,就快速写一下啊叫,然后点string,然后接下来是user service.get fears,然后加上去后边这个字符串,后边这个类名,这个user service的一个类名,我们加一个双引号,加上一个加号,然后呢,这叫user service class.get什么呀,Simple name好,大家注意看啊,注意看。
02:07
好,这个呢,其实就相当于把这个类的名字拿到了,呃,就是类的一个一个一个信息啊,来输出一下这个S这边呢,我们执行一下,好大家看最后的这个结果啊,先瞅一眼啊没问题吧,然后接下来我们要获取这个方法呀,我们大块开始大块结束,中间是方法吧,方法应该怎么获取啊。调用我们user service的一个方法叫get declared methods,拿到一个method数组。好,拿到这个method数组之后,我们my methods啊,然后对它进行遍历。便利啊,For循环对吧,哎,Method method methods是不是好,拿到这个method之后,各位我们干什么呀。哎,我们开始给他拼了,拼了啊,往哪拼啊,S点追加,我们先去追加什么,各位大家看上来,我们把它拿来啊,拿过来过。整个这个方法,长这个德行啊,长这个德行,我们先拼一个修饰符怎么拼。
03:06
Mo fair.to string method.get Mo fair,这就是那个修饰符,往后是不是需要一个?空格。对了。这个位置是不是还有一个缩。所以这块的话,我们再加一个杠T。杠T个位啊好了,那么接下来加了空格之后,空格后边是一个返回值类型,返回值类型应该是S点追加,追加里面返回值类型该是method点什么get return type.get什么simple name。是吧,这个是不是就是返回值类型,然后再往后是不是又一个空格。对吧,空格后面是不是个方法名,方法名好说,追加method.get name就行了。那方法名后边我问大家是不是一个小括号开始。那小括号的就追加上,追加上一个小括号开始,然后再追加一个什么小括号,怎么着结尾吧,是不是小括号结尾啊。
04:12
小括号开始,在最终位置上,这个小括号结束,还有一个大括号是不是啊,还有个大括号,那这个小括号开始,小括号结束,这个位置是不是参数啊?小块开始,小括结束,这里边是第一个参数,第二个参数啊,那参数怎么参数?应该是个数组吧,Class数组parater什么types等于measure.get parameter types,这是一个数组,拿到数组再进行循环,Class是不是?哎,Class,然后parameter type。Parater type冒号parameter type4,这是这个数组对它进行遍历,遍历一次取出其中一个参数的类型追加就行了,s.a追加S啊,点A追加,追加什么呢?追加我们参数类型get simple name就可以了,然后注意在这里再去追加,因为追加了一个参数中间有逗号啊,所以这边s.ipad追加一个逗号,各位大家看。
05:17
对吧,但是最后肯定会多一个逗号,因为这样的话,第二个string后边是不是也会多一个逗号啊。对吧,哎,最后我觉得还得加个杠N吧。然后呢,这个类这是不是得加个杠N。换行吧。哎,类上加个杠N,这还得加个杠N,换行来走一个,你看这个类是就出来了。这不,这不是这个类吗?这是一个方法吗?Public布login string string这个地方有个逗号。对吧,你把这个逗号给他。给它去掉怎么去啊。怎么去掉逗号?截串行不行?
06:01
截串行不行,各位。截取字符串行吗?S点萨顿。从哪开始结到哪结束。到哪结束S点什么。这样是不是获取的是新新字符串啊。Delete char。啊,有一个方法叫delete char delete char s.Les。减一,我们来看这种方式行不行,行吧,哎哟。来再看一下啊,执行一下。诶,可以可以各位啊,这个delete差的可以对吧,删除指定下标位置上的字符。截串也行,都行啊,删除指定下边位置上的字符s.delete叉啊,来执行一下,大家看这就行了。
07:07
好,那如果说现在呢,把它换成换成别的呢。这块我们换成另外一个类呢,各位类名换一下。换成string呢?能不能拿到我们string类中的方法呢?找一个。类是不是很多方法呀。好,大家看是不是都拿到了。这是不是这个死准这个类呀,哎呀,这么多死准这个类对吧,它里面是不是很多方法。对吧,哎,每一个方法是不是都拿到了。你看。是不是,你看char是不是,哎,你看方法很多都可以拿到反编译。是不是,哎,这个方法你看to our case to our case转小写转大写。对不对,哎,转型也转大写你看。对吧,方法很多。很多啊,通过这种方式呢,可以反编译我们的方法。
08:02
反编译一个类的方法。
我来说两句