00:00
好,上节课我们把这个需求已经分析完了,那接下来我们就开始录代码呗,对吧,那录代码的时候我们先创建一个包啊,包里呢,我们这个是right w r。That么序列化这个案例,那在序列化里面我们首先定义一个b bin对象,那让这个并对象它具备这个序列化的相关功能,那我们需要几步啊,首先第一步我们要定一个类定义类实嗯,实现INTER3接口对吧?哎,实现这个接口这是第一步,那第二步呢,就要重写序列化。和反序列化方法是吧?嗯,那第三步呢,正常情况下我们应该是重写一个空参构造,空参构造好,第四步呢,我们这里面要做的就是重写它的to string方法,用于打印输出。
01:11
啊,大概分这么几步,那首先我们来看一下第一步,呃,第一个类实现intercept接口。啊,不是intercept啊,这个是后面的框架,那right wi啊接口out加回车实现两个方法,一个呢是序列化,一个是反序列化方法。啊,这第一步,那之后呢,是重写空参构造是吧,空参构造。那这个工商构造怎么写呢,右键。哎,随便一个地方右键啊,然后这里面有一个在生成,生成的话第一个就是故造,哎,什么也不输,故障来了,这个是用来后续的一个反射用啊,那它完事之后呢,往下走,嗯。下面呢,要写这个序列化和反序列化方法,那我们对谁写呀?
02:03
对不对,那你得有这个属性嘛,那你看一下我们这个需求。我们的需求是这样吗?我们需要对上行流量、下行流量还有总流量把它封装成对应的并列项。拿来。对封装它,那封装它的话,那你定义三个属性private。那定义成浪类型嘛,因为流量的数据量比较大,所以说我们用浪来进行一个累加,那up flow,那这个叫上行流量。好,然后private了,嗯,Wn down flow,好,这个呢叫下行流量。对吧,那还有一个总流量,那类型sum flow OK,那这三个属性定义完之后,那我们顺便啊,就把它的get和set方法给生成了。
03:02
按右键还是战斗轴生成,生成之后这里面有get和set方法。都给它选中,然后OK拿下,拿下之后往下看,往下看下面有一个这个set sum啊,累加的求和,那这个呢,我们把它这个重载一下啊。怎么重来呢?哎,我给它来一个无参的,不需要传奇参数,那这个some怎么来呢?这个结果怎么来呢?用this.uplo加上days.downlo。哎,这样去做。就OK了,因为后续啊,哎,我们不会传这个sum flow,你还记得吗?因为我们在这个map阶段有它有它,但是没有呀。那它怎么来?在底层的话,就把它俩一相加,不就得到它了吗?哎,是这个意思啊,行,那这个是,嗯,它搞定搞定之后下面呢,我们开始写它的序列化方法。序列化方法,那怎么写呢?out.right我们是什么类型?看好了啊,看好了什么类型?
04:06
都是long类型吧,那这块写的时候就是right long,先写up flow啊,然后回车out.right哎,这个容易这个写错啊,嗯,Long,然后down flow,然后out.right long,然后some flow。那开始我写序列化的时候这个顺序。我用非得说必须得是up down some,没必要啊,因为它是什么顺序没关系,但是你这个序列化的顺序一旦定了,那你反序列化的顺序就必须跟他一致了。这之前刚才已经讲过的原理吧,在这块。对吧,哎,你先发送的是他,那我接收的就得是他,我第二个发他,那我第二个收的就是他,我第三个发他,那第四个他送,那至于说你前面这个,我先先发他,我再发它,我再发它,那你把这个顺序调调过来,对吧,拿到后面去。
05:04
那接收的顺序一遍就可以了,行,那下面呢,我这块呢是收一下,那就是印点。瑞德浪啊好,那瑞德浪这个值给谁呢?给这个this点,我第一个值呢,是up flow啊,用它来接受啊,哎,这就OK了,那下一个呢,this.down flow,它等于in.read啊,仍然还是long,那this.some flow,它等于in.read long flow,因为我读的类型都是long类型啊,你看在这呢吗?Long类型long类型long类型,那我后面读的时候就是读它读它读它哎顺序,所以说这个顺序很重要啊,先读的是up down some,嗯,Up down some,这三者顺序一致,好,那最后一步呢,还剩一个就是这个重写这个to间方法对吧,那我们重写一下。
06:01
To使劲重写,那这三个我都重写。重写的话呢,这个呢,比较复杂哈,那我们希望的格式啊,就是上行流量斜杠T,然后下行流量再斜杠T总流量这种方式进行一个展示,那我这个前面这些前缀啊,就都没有必要了删掉。删掉之后,中间这块我用的是斜杠T。你看,然后它变成了斜杠T。删掉。这个呢?再把它删掉,哎,删完之后这个格式跟这个格式对应就对应上,那后续再进行可视化的时候,它就会打印成这种样子。好,这就是这个病啊,对象相关的一个啊,编写啊还是比较轻松的。
我来说两句