00:00
好,那我们以捏来的方法,呃,是不是在process方法之前调用啊,啊,因为官网要求说了,那我这个方法是怎么调用呢?哎,以的方法调用一次,调用一次啊调用一次,然后呢,方法怎么办?它底层它会循环调用,它是不是一行调用一次啊,一行调用一次啊,那所以说在它之前肯定已经走过了process方in方法了啊,那所以说这时候呢,我们就得需要注意一个点了啊,你看我们这个这个方法啊,它的入参是什么?入参是一个结构体,是一个这个对象的数组对吧,是一个对象数组。啊,Object数组啊,Object对象嘛,Object数组,那这个object数组,它其实里边装的应该是啥玩意啊。这个装的就是啥呢,这个数组里边。是装的,就是我们传给这个函数的。那个参数的呀。是不是就那个值了呀,就是那个数据了,对不对啊,那他为什么要整一个对object数组呢。为什么找一个object数组?
01:00
首先第一点为什么是数组应该能想明白,因为我们传三是不可能传多个呀,对不对,那为什么是一个object呢。因为在这写object的话呢,我就可以传任意类型了,对不对啊,是不是都可以调用那个process方法啊,这是它底层的一个设计的一个逻辑啊,咱不用管,那我们要做的是什么,是不是应该是拿到我们哎所需的这个数据啊,对不对,那拿怎么拿,是不是肯定从这个数组里边拿啊,那我们给他传了几个参后,后来咱们会给他传几个他。是不是肯定传一个三对吧,传一个三的,所以直接就二个零行不行,那咱们传的什么类型,是不是就是死之类型所类型我直接吐死菌行不行。啊,那我得到的就是一个死针,那你说我们这个地方要不要做校验呀,咱们这直接X0,那你要是哎穿的是空的,你要没穿参呢,那是不是就是会报这个数组下标越界呀?啊对不对,那如果说你这个转转不成死质类型,那是不是强转就会有问题啊,啊,那需不需要考虑这些问题啊。需不需要考虑?不需要,为什么不需要,因为刚才咱们说了以尼称类方法是在process方法之前调用的,那咱们这是不是已经校验了参数的个数以及参数的类型对不对,那已经完事了啊,完事,所以这呢你就可以安全的直接把它转成死质类型,没有任何问题啊啊,那接下来往下走,既然过道string了,那这个string其实就是什么,将来我们给它传的就是啥,咱们已经定义好了,我们传就传一个杰森数组对不对啊,就传一个杰森数组字符串啊,那所以说这时候咱们就想办法去遍历这个杰森数组就完事了啊,那怎么变历啊。
02:34
一个字符串,咱们遍历肯定没有办法遍历,对不对,那所以说在这儿我们需要借助谁呀,是不是需要借助这个杰森的解析工具去遍利它呀,对不对,那咱们的杰森解析工具呢?有fast杰森,有其他的一些东西啊,那你要用他们是不是还得再额外的引入依赖呀,对不对,那这块咱们不用再引了啊,还有这个ESEC当中,它其实已经就引了一个杰森的解析工具了啊,是org杰森,杰森官方提供的解析工具啊,那所以说那咱们就开始使用那个就可以了,那怎么用呢?咱们直接哎,New一个。
03:04
啊,杰森the瑞ay,你看啊,叫做org的杰森这个包对吧?点那这里边我们怎么用啊,那把这个S放进来就行了,这个S呢,其实就是谁就是咱们那个杰森厄瑞啊str,那我写一下吧,啊杰森arr啊ay arry,那然后呢,Str,咱们这种接森解析工具呢,其实呃有很多,但其实他们大体上使用起来都比较都比较类似,那都是什么呀?将一个字符串转成一个它自己的接森对象,然后呢,有接转成接森对象之后,是不是就可以通过各种GA的方法去获取里边的值了呀?啊其实都是这样的,大同小异啊,那CTRLV,好,那咱们拿到这个阶S瑞对象之后呢,CTRL的V返回一个变量,好,那这就是一个阶层对象了,接S对象了。那既然是杰森,那他是不是肯定得给我们提供能够便利这个数组的一个方法呀,对不对,那咱们看看有没有相关的方法,杰森瑞点点,你看这里边有什么啊。
04:03
首先你会发现这里边儿有一大堆的钙的方法。啊,那get的方法,它里边先看它的入参啊,入参是什么,全是int类型的index是不是都是那个下标啊,对不对,那所以说我是不是可以根据下标去获取每个元素。啊,然后呢,你看它会有各种get啊,Get get布尔,Get double get in get杰森瑞,Get杰森object black,诶你说这个不同的get,它指的是什么。指的是这个方法的返回值get布尔,那它返回就是布尔类型get double就是double类型get杰森R呢,那就是相当于返回一个子杰森,对吧?那这个相当于返回一个啊,这是一个子阶森瑞,这是一个子阶森对象,那就是这个意思嘛,啊那你说咱们这儿是不是就可以通过这个get的方式去获取里边的每个元素啊,对不对啊,那OK,这个可以了,那还有什么其他的方法呢?咱们再点一下啊点。然后之后咱们接着往下看,还有没有其他比较有价值,诶这有一个这一个什么,有一个Les对吧,Les是不是可以获取数组长度,哎,那咱们能获取数组长度,也能通过下标去获取它里边的元素,那你说咱们这怎么编离它呀。
05:12
写什么就可以分式循环是不是就行分循环,然后呢,便利它这个就是呃I等于零,然后呢小于它的长度,然后呢,通过那个呃I是不是就取它里边的每个元素啊哎就可以了,那就这样一个过程吧,那点点之后呢,我们先来一个for I吧,啊for I然后呢,我们往后走,这应该是J瑞gon,呃瑞Y,然后点是不是这个Le啊认完了之后在这个呃里边咱们怎么写呀?里边怎么写,里边是不是应该是JS瑞g son啊ay JS。A,介词点是不是各种get呀,那你说咱们get应该都要用get什么。咱们干的什么?我的反复质类型应该是什么?
06:00
你你看啊,你变列的时候是不是get一个元素,这就是你将来要输出的那一列呀,对吧,那咱们一列是不是死string类型,那就get词论呗,对不对,然后这里边写啥写I就行了啊,那OK ctrl out v啊,那是不是咱们就得到我这个要输出出去的一个结算对象了,字符串二了呀,对不对,那这个东西怎么输出出去,还记得吗?通过谁来着。通谁通谁是不是forward方法呀,对不对,Forward方法去输出你里边的每个阶层就可以了啊,那当然这里边你看它让我放的是啥,是object对不对,那同学可能会想,哎,我是不是直接把这个string我放在这里边就行了呀。是不是这样啊,哎,不是这样,那为什么不是这样啊,你得考虑一个问题啊。咱们这因为比较特殊,我这个,呃,爆炸函数呢,我是不是只输出一列。对,植入一列,那你这是不是就获取一个就直接给他,那假如我这获取两输出两列呢。啊,我除了有死盾啊,除了有有第一列,我还有第二列,还有第三列,那你那个forward你怎么输出呢。
07:01
就是一行我就有三列,你是不是就不行了呀,所以这块呢,你不是这么直接给他了,你得怎么给呀。啊,你得把这个所有的字段是不是封装到一个集合,或者是一个什么。或者一个数组都是可以的啊,都是可以的,那即便是你这一行里边只有一个列啊,只有一个列,你也要封装成一个对一个数组或者是一个集合啊,这是它要求的啊,这个大家要注意啊,要注意OK,那这时候呢,我们就来一个数组,咱们是死追类型的,我们就拗一个,哎,死追类型的数组就可以啊。哎,CTRL,那咱们这个此时类型的数组呢,Ret啊,你说我们这长度是几就够了呀,是不是一就够了啊,一就够了啊,那我们给它赋一个值啊,那就。诶,零。那让它等于宅,是不是等于咱们刚才炸出来的这个所谓的一个string就行了呀,对不对,那当然这个咱们换个名字吧,叫做杰森吧,啊,这个呢也叫杰森son啊好,那这时候咱们再把谁是不是得把这个数组放到否二的方法里边,哎,这就完事了呀,那就完事了啊,就是这个数组这块呢,需要注意啊,即便我们这儿炸出去之后只有一个列,但我们也应该给它封装到一个数组里啊,因为这底层代码逻辑是这样的,因为你往外炸,你可能有多列嘛,有多列你就得放到数组或者一个集合当中。
08:29
是这样的啊好,那咱们把这搞清楚行,那到目前为止,我们这个函数呢,就算是,哎,这个写完了啊,就写完了啊,这里边逻辑其实呃,也不是很复杂啊,这个process范围里边一一共也没有几行代码啊,可能就是大家对这个API比较陌生啊,没关系,这个你写一遍之后就熟悉了就好了啊啊那我把视频录一下。
我来说两句