00:00
好,那接下来呢,我们重点的就写这一块,但是写这个之前呢,我们就可以在这来写了,对吧?啊,不是GDBC.s了,而是直接用click house u。诶,它也有一个优势,它本身有一个优势对吧?啊,那们不用那个啊get same,然后呢,这边传一个so进来对吧?好,这是最后呢,我们在这传一个so进来啊呃,那到这边未来我们要想这个地方,我们是要给它进行赋值对吧?点set,然后我也不知道什么类型,所以我就直接set object,然后呢,从一这个问号要付过去对吧,比方说随便付一个值啊好这边呢可能是二。三啊三个问号呢,负三个,四个问号负四个,那大家很明显能感觉到,我们肯定不能写1234写死,因为未来我们那个circle语句对于各个表是不一样的,也就问号的个数不一样对吧,那既然不一样的话,肯定要根据一个什么条件来写一个循环去添加。
01:00
对吧,那我们应该根据什么来进行循环呢?啊,那大家想啊,我们正常的是不是要把这个对象里面的值取出来,给这个问号赋值啊。就是这个地方双引号,我写的双引号啊,其实都是从这里边取出某些字段的值过来的,对不对。对吧,那怎么办。怎么做了?这一段时间我们写泛型写的比较多啊,对吧,不同各种各样的泛型的用法。给泛型对象赋值,这个呢是要拿着泛型对象去取值,对不对。对吧,之前我们是搞一个空的泛型对象,然后往里面赋值啊,我们做过这个地方呢,我们是要取值。
02:05
怎么办?没有同学答是吗?那我们就直接说了啊。因为等了很长时间了,不至于这个延迟这么高,对吧,那我们就直接说了,从这个T呢,我们能获得它的一个大的class,通过大的class呢,我们是能够拿到它的一个字段的。对吧,我是可以把这个字段取出来,它是一个false,所有的字段取出来,那有了这个里边的字段,那我们是不是有个数啊,然后我们负循环它的个数,我们是不是可以把所有的东西都给它拿到。对吧,好,但是这里面还有一个点get class点,有没有同学知道这两个有什么区别。
03:10
这两个什么区别?也不知道是吧,那无所谓啊,那我们进去看一下啊,点到get field里边,呃,那这个地方呢,来。上面全部下面公共没问题啊,你看啊,它返回的是一个什么叫public。啊,Public对吧,而上面来点开啊,看一下它返回的是什么呢。Public default and private。所有的。对吧,啊所有的,而其他呢,只包含一个公共的,那我们肯定要用上面的对吧,所有的属性我们都要啊好,那这个呢,是。
04:03
获取所有的。属性信息,看嘉宾得到一个false字段,好呃,有了字段那就遍历字段对吧,便利字段那就负I循环啊,负I循环I等于零。点。对吧,点lets好,那从这个当中呢,我们能够取出来字段名啊点。看嘉宾得到一个field。对吧,当然不是零啊,应该是I。对吧,这个是获取字段。获取字段,呃,那我们要怎么根据当前的这个字段去获取值呢?对吧,我们更重要的是获取值对不对,获取。值啊,获取值之后可以给这个预编译搜对象赋值。
05:08
对吧,那就可以拿着prepare statement.set object啊这边呢是I加一啊,注意从I加一,因为我们I从零开始的,对吧,所以这边呢要从加一啊,这边我们说过了啊,然后呢,这边正常放一个值,就把它获取的值放在这。对吧?啊,那这个地方如何获取值看啊这个地方是不是有对象。有字段怎么获取值啊?学反射的时候,现在大家对于这个反射的东西还记得多少?反射反射,你就记住一个字,反他就反着来对吧,那以前啊,我们要获取值怎么获取啊,假如说有一个对象在这,我们要获取一个属性的值,是不是拿着object点叫get。
06:11
Field。对不对,我们要get费对吧,字段在这儿就是拿着对象去调字段,然后呢,获取value率,但现在是反射,那反着来,我们同样的还是过去值,那就拿着谁呢,拿着field。去干什么呢?点get,然后呢对象。你就记住这个就行,反着来反射。对吧,反射就这样子的好,那这边呢,我们可以获取值,怎么获取呢?C的点。Get,然后呢,把这个T放进去。这就得到了一个哦。啊,当然了,这个呢,我们可以把这个异常对吧,我们抓一下这个异常。
07:01
啊,抓这个一条。Object,然后呢,我们先复制一个什么。浪直啊,当然呢,我们也可以这样啊,我们应该这样做,怎么做呢,我把这个踹呢,踹大一点。看到X,我给它拆到这儿来。对吧,拆到这来啊,然后接下来我们把这个东西呢,也写进去。对吧,我整个的搞大一点啊呃,然后我们看一下这个地方,哎,它是有问题的对吧?嗯,它是一个就是它呀。那我看一下啊,这个是有一个括号错了对吧。这个括号到这个位置多了一个括号对吧,我刚才对我多了一个括号,诶我我重新弄一下啊,这个地方应该是刚才复制的东西,有复制有问题,我重新弄一下。把这个。踹对吧,好呃,那咱们这样啊,把这个踹呢,我看一下,我把catch应该拿出去对吧,把这个踹调到这,然后catch空间对吧,给它拿到这个位置。
08:05
看啊,这个现在在这对吧,到这来。然后再最后加一个这个大号吧,对吧,这就好了啊就好了,对刚才踹的空间把它对啊,所以呢,我们给它整个的踹大一点。对吧,注意它是这样子的啊,就是反着来,你记住这个反着来就行了,对吧,反射反着来,然后这个里面呢,我们就开始放一个这个value,假如说我们叫value叫VALUE6,把这个VALUE6呢放过来。对吧,好,那还有一个点啊,因为刚才我们获取的是declare的这个file,它包含这个私有属性,所以呢,我们要在这边设置私有属性可访问,好,那就是说fail.set access给它改为一个处。啊,你私有属性就是说不管你什么字段,我都设置为可访问的就好。对吧,做这个事情啊,这样的一个东西就反射啊,那同样的我们再扩展一点啊,就给大家多说一点,因为这个地方我们用反射中获取一个属性的值,同样的我们是不是也可以通过反射去调方法呀。
09:11
对吧,也可以通过反射调方法,那调方法也是反射,以前我们调方法是不是拿着一个OG去调用方法直接呢?Method,对吧。Method,然后传入参数这样的吧,现在如果说我们要用反射的方式来调这个方法,那怎么做呢?那就拿着method。点invoke。对吧,In work,然后呢,把obj放进去第二个位置传参数。在这把这边要把传参数嘛,参数放在这对吧,我们稍微的来看一下啊,这边呢,我们t.get class点除了这个地方之外,我们看一看还有没有这个。盖的,看见没?对吧,Get method,那我们也可以获取到method,比方说点循环对吧,我们就得到一个一个的method点,那我们可以。
10:04
调什么呢?In work好,看一下in work里边传的东西啊,首先第一个位置是一个对象,比方说我就要调T的,那就T。对吧,然后后面是参数啊,当然他用的是可变形参,因为有可能我们当前这个T里边有的方法,它不需要参数。它没有参数,这也有可能啊。对吧,就这样子的啊,就是说你记住反着来就行了,以前我们获取值对吧,拿着OBG点你就记住这个值点get。你就记住这个东西啊,那我们在这稍微写一下啊,在这个地方对吧,所以反射以前呢,是拿着obj点。Get filled。花对吧,那通过反射呢,就反的那就failed。点get括号这个地方呢,放一个T对象啊,或者说叫obj,我们两边统一啊,放一个obj对吧?啊,那你要获取这个值啊,那将来还有一个方法,方法以前呢,我们也是拿着对象点method的吧。
11:13
对吧,这边呢放X。啊,就是你以前的自己的参数,这个方法参数,那现在呢,通过反射反射反对吧,突出一个反字就行了啊啊,那这边呢,拿着method。点in work,它是通过in work来调用的啊,然后呢,这边放OBG,然后呢,后面放X。对吧,就是通过反射的啊,那其实整个的反射呢,这个东西比较好记吧,就简单的去记,对吧,通过这个反字来把它记住,这个就不难了,对吧?以前大家学反射的时候呢,可能呃,其实学的时候呢,可能大家也觉得不难,但是呢,很长时间不用忘了,所以呢,稍微的给大家去总结一下,对吧,这个呢,我们就干掉了这个标,对吧,只是做一个说明对吧,就做这视频,那到这一步为止呢,我们就搞定了。
12:01
啊,对吧,I加一把这个值呢,放进去获取这个值对吧,这样就搞定啊。好。
我来说两句