00:01
我现在已经把这批种文件把它写好了。然后呢,我们找到他,找到他。我们找到这个。他。好,找到这个叫dispat。我想来做什么事情呢?这是一个对不对,同学们。那这个我们是不是它的生命周期有实例化,初始化,服务销毁四个阶段啊。那行,我在它的构造方法里面。Public Dis,我在它的构造方法里面,我打算要去解析刚才的配置文件。我准备去锦西的配准文件。Get class点。Get resource as stream,我们先get获取类加载器,点get resource as stream,我们要去读application contact.x。那么它将给我得到一个输入流input stream。
01:04
Input stream,记住他。得到一个输入流。表示这个流,你就把它想象,想象成是一个管子,这个管子就搭在了这个文件上面,然后要去读这个文件里面的信息,就这意思。只不过呢,我们不需要用最原始的凹流来读,我们有一个办法。Document build factory。Document这个单词我是认识的,叫文档,所以我把我们以前叫H,我们可以认为是一个文档,现在我们XL也是一个文档,叫document。好,Document build等于build点。New instance。这第一步创建一个。创建document build factory这个对象。第二步。创建document build的对象。Document。
02:00
Builder。哎,这个对象。Document build等于document builder factory.new build这个代码呢,不需要大家掌握,但是呢,其实也不复杂。啊,如果大家实在不想写,你就直接拷贝我的就可以啊好,这边需要抛一个异常刷开启一下。OK。我们把这个代码全部挪进去吧,把这个代码也挪进去,全部挪进去算了啊。我在这里面的。创建document的对象。第三步。获取或者叫创建。Document对象。我的目的就是为了第三步,前两步的目的就是为了第三步,Document。一会儿大家就能明白为什么我想获取document,其实非常简单啊,来看一下啊,Document不要导错了,不要导错了,导。org.W3c.do倒这个。好,Document等于document.pass看一下pass里面是不是需要一个input stream。
03:06
需要一个流,那咱们这边是不是正好一个input stream。把它放进去。再次开启一下。这样我就得到一个document对象了,得到document对象我想干嘛呢?诶,大家现在一看就恍然大悟了,点get elements。能看得懂吗?Get element by ID是不是有啊?Get elements by name是不是根据标签名啊?哎,就这样吧。好了,我们要获取所有的病标签。虽然咱们当前的配置文件里面只有一个并标签。但是不排除我们有flute,看着图。You use order product controller,是不是有好多啊?将来我们项目复杂情况下,这个病就会有很多。所以。我霍去病,他给我得到的是一个叫load list。
04:00
List,你就把它想象成是一个A。当然还是有些差别的啊,你就把它想象的看着他带个绿吧。你就认为是个集合嘛。好。获取所有的病元素。或者叫并节点。下面我们要去循环这个并漏的这个节点。负循环。Int I等于零,I小于并漏list的点get I加,加。哎,它和我们集合还是有些小差别的,我们集合是不点get size还是叫什么点不叫get,叫直接叫size。是吧,这边叫get啊,行,并漏的好,我们以前叫get是吧,现在它没有,它叫item,获取里面的每一个元素,行吧,同学们。这样我就能拿到一个漏。漏。这样我就可以拿到一个冰漏的。好,它肯定是个元素节点并漏的点。
05:02
Get a load type。它的节点类型等于等于。冰啊,等于的。点element load啥意思?猜一下呗。猜一下呗。这个代码大家虽然没有见过,但是大家肯定肯定会。我们讲JS的时候是不是获取节点。判断是否是元素节点啊。哎,有类似的吧。好,就这样子。这就是我说的啊,你Java策略的和Java其实没啥关系,但是为什么我们这个非得要扯上点关系,那就是Java里面的很多的API和Java几乎是一样的。好获取这个节点类型获取到了。啊,如果你是个元素节点,那我就把你强转为一个元素节点。Element叫element等于。Element。漏。打包。好,别打错了啊,Org.W3C。再来,为什么要强转为element,因为element里面有比较好用的get attribute。
06:06
我们JS面是不是也是一样的呀,JS面我们是不是也做了强者呀,就这样子get attribu,好,第一个我们要获取ID。并ID。并ID获取到是不是这个。是不是还要再获取个。再获取。俊。Class name等于你不能直接写叫class啊。这是不是个关键字啊?不能直接写叫class啊,所以我就写个叫class name等于b element.get attribute。Class。就这样的。这样我就把你的ID属性和你的name属性啊,就class属性我都获取到了。获取到之后,获取到之后我就可以保存到一个。我在外面,我准备一个。
07:03
Map。石俊,石俊。我准备一个叫冰。Class name map。New哈希map。这样的。当然我这边的value值存储的是死菌,我们也可以存储的是一个对象。我们也可以存储的是一个对象object,这也是可以的,如果是object,我这边名字就不要叫这么长了,直接是b map。我的想法就是。这个ID要对应它的实例对象。对应的不是他的权利名,我这里面描述的是权利名,我要对应的是他的实力对象。那既然我想对应他的实力对象,我就需要再多一步。Object。并obg等于class.form m是不是用过的呀?For them?
08:01
Class,我们把它放进去。把他的权利名放进去,这样我就能得到他的大class对象了。得到大卡对象之后,点new instance。是不是?New instance,这样就能创建出他的实力,再去开启一次。这样就能得到它。然后我就把ID。冰ID和冰obg,把它扔到这个冰map里面去。回到这边来。并卖点put。ID。O。所以说这个构造方法里面,这个构造方法里面这一坨功能,它主要做的事情就是解析的配置文件。把配置文件里面所有的并标签它的实例对象全部加载保存在一个map对象里面去,是不是同学们?保存的map想干嘛呢?想干嘛呢?
09:00
我下面是不是解析得到哈,我是不是要说把哈,请你给我把哈这个名字和后面这个对应上啊。那后面的这玩意儿是不是全部放在这个冰里面去啊。那你前面这个名字。前面这个名字是不是就是这边的ID啊?那我不就根据ID技能获取后面的value了吗?这样就能把它联系起来了。好,这是pass,所以在这个地方。map.get。撕了,他怕把它放进去。我们就能得到一个object的对象。我们这个称之为叫,比如说ctrler ctrler b obj等于它。啊,就能得到这个对象了。得到这个对象之后,我要调用这个对象里面的什么方法呢?我要调用这个对象里面的什么方法呢?我们看一下我们之前float里面是怎么去识别调用的是哪些方法的,我们是不是根据一个叫O啊。是吧,同学们,这个是不变的。
10:02
所以这一坨一直到这儿。剪切。你看我是剪切。剪切掉了。全部扔到这里面去。扔到这边来。扔进来之后,我们一点点来读一下。好,从这边开始。Operator。如果你是空的,我就附个默认的index。啊,就默认的index,然后method,你这个不能是this get class了。应该是什么?应该是什么?应该是什么?哎,非常好。Ctrl b obg应该是这个对象的get class.get是吧,同学们。应该是这个对象,我们本来就是想调用这个对象里面的方法嘛。然后咱们通过负循环一步步去获取,你不通过负循环其实也可以直接一步到位。
11:02
啊get method,然后传参数也是可以的。啊,也是可以的。比如说我不通过负循环啊,这个负循环感觉好长啊是吧,那行,那我就在这儿。这边就不要获取所有的方法了,写一下啊。Controller。Get class.get declared method,我们把这个名字把它放进去,名字是不是就叫operate呀?后面的参数有两个参数。request.get class。第二个是我们的response.get class。是吧,无非就是两个,当然我们这边传参数的时候,我们也可以传http request,用还是用它吧,点class啊,用用这个名字更精确一些,不能用这个啊,因为它这里面我们不能给他讲太细啊,这里面还涉及到它里面的用的一些设计模式。稍等一下啊。它实际上这个response啊,它真实的类型和这个htp response还稍微有一点区别啊。
12:07
HTTP我们还是这么写点。把它放进去。哎,这样我就能得到一个method。等于它。那这个点咱们要去开启一下。这边只能surround with。我知道了,这边只能surround位置,不能,为什么?你当前这个类是不是重写的?负类的方法不能抛出比负类更大的异常,只能当场去开启是吧,同学们?圈开启一下啊,得到一个method,然后这边做判断if。Method不等于now,表示这个方法能找到。Else表示没有找到else。我们就思路。Else,写这句话简介。把它放进来。否则我们就是调用。m.invo。把它放进来。
13:01
也给不要了。method.invoke是不是这样的,再开启一下。这样就把它写完了,那下面这一坨可以把它删掉。好,这个方法我就把它写好了,当然现在不着急,我还没开始加注释呢,咱们一会儿小结的时候再往里面加注释。现在这个中央控制器,我就做好了这个中央控制器。它的步骤分成了三大步,分成了三大步。第一步。根据我们的请求的URL获取你的pass。根据你的pass去解析,截取你的字符串,解析出一个名字。第二步,他要去解析加载我们的那个配置文件application。下载这个配置文件,从这个配置文件里面去读取,一个一个的,并扔到他的一个map容器里面去,这是第二步。第三步,我们要根据刚才我们所得到的那个。啊,Pass那一个名字,去map里面去找到所它能够处理的对应那个处理类叫ctler是吧,然后调用CT那里面对应的方法,那么这个方法是谁?我们根据oper这个选项值来决定。
14:12
总共完成了三大步。好了,那么这个类我就暂时先写到这儿。那么我们的float float ctrl了啊,暂时先写成这样就不用动它,但是我们这边注解拿掉了,拿掉之后它是不是就不它就不再是一个select组件了。就这样子。当然了,这个Dis SP,现在你继承它,其实其实一定走,我们可以直接让他继承HTTPT,这是没有关系的。啊,让他记HTTP就可以了。啊,就这样子。差不多,不知道这个改的对不对,我们得试一下。试一下才能知道。
15:01
我们大家一定要一定要知道我这么改的好处。我这么改的好处是多了一个中央控制器,那么你这个flu controller user controller order controller,是不是里面就不需要再出现这个重复的反射的代码了?要不然你是不是要在每一个flu controller user controller当中都需要写那个反射的代码呀?其实那些代码是通用的,干脆就直接抽取到类里面去。再来。这是幺五。我们来看一下啊。这是药物,没错。这边改成幺五没问题,那这个哈点都把它去掉,我们直接写F点都是吧,同学们直接改成它试试啊。启动一下。
16:02
好,他现在正在启动,我们来看一下啊。好了,福禄点都啊,但是出现了空白,出现空白就说明有问题,我第一个怀疑的就是我们的阿物流没有读到。他抛了异常。谁谁谁cannot,哎呀,他的是个access错误。哎,他不能访问这个恐惧了啊,看来我这个还担心的,担心的没必要啊,那个理由读到了。他都已经找到fruit controller了,是吧,但是它里面每一个方法是不是都是profit呀?哎,就这问题导致的。当中,咱们现在已经拿到这个method了,Method method往下。是不是这个如果卖了不等于闹。Method set accessible可以吧?直接把它改成。再刷一次。
17:20
好,我们一起来看一下啊。再看一下这边的页面。好。这个页面现在已经出来了,但是他说object is not an instance ofate class,他说当前这个对象啊,他不是某某某这个类的一个实例,怎么会报这么奇怪的问题呢?看一下。回到这儿。我们来看一下啊。到这里面去,也就是在这个地方,哎呀,这边没改,同学们这个代码是不是我直接拷过来的,以前我用的是用的是this,因为之前这个代码是不是写在float control里面的。现在要改成啥?是不是这玩意儿。
18:00
哎,是吧,同学们。对吧,把它改成它就可以了,就用这个里面的这个ma的方法。好,哎呀,再重启一下吧。还没出来。再看一下哪里报错了啊。啊,没报错。没报错,他都没出来。有错误往上看啊,往上面看一点啊。这里面报错了,96号报错了,这句话报method.invoke这句话报错了,往下走。控制灯。他给我报了个空指针。呃,这个点报了一个控制针啊。
19:02
叫method.invoke这边包了一个控制帧,这个控制帧这个问题呢,隐藏的有点深了啊,这个问题隐藏的有点深,呃,他需要用到一个初始化方法,这个初始化方法咱们还没有,还没有去讲啊来。我来给大家说一下。这边报了个控制针。也就是他里面出现了控制帧,然后导致它里面出现了控制帧。然后呢,最终是这个地方。啊,这边出现了控制症。Template啊,这边出现了控。那么其实是它里面导致的。这个地方导致的啊,出现了控制症。嗯,我们怎么解决这个问题呢。让我来想想啊。这个方法是一个伊利的方法。它是一个应力的方法。这是我们的view。然后我们的fruit controller。
20:00
Controller注意了啊,这个controller他虽然继承他。但是这个controller它是不是已经不再是一个了?它不再是一个。那你注意了,它就不会去调用那个应力的方法了。好,我们在这边解释一下原因。慢慢来啊,我说一下。之前。Flu是一个组件。那么其中的方法一定会被调用。是不是?好。之前的应力的方法内部会出现一句话。叫super。是不是?它的初始化方法内部会去调用负类的应力的方法,这个没有意见吗?继承过来的嘛。我们每一个重写的方法,第一句话不就是不就是这个点什么什么吗,它其实有这句话的。啊,其实是有这句话的。
21:00
那么有这句话,就会调用这个view里面的这个应力的方法。现在它已经不再是一个了,所以它的in力的方法不会调用了。它不会调用就意味着cu.in的不会调用,cu.in的不会调用就意味着这个方法不会被执行。这个方法不会被执行,这个web context稍等一下啊。Weber context。也就这玩意。啊,这玩意儿就有问题。啊,因为这里面代码都没执行嘛,是吧,都没有被执行就有问题了啊,这个select就有问题在这呢。啊,Just就有问题。所以啊,我们想解决,我们只要知道原因,我们想解决了就就简单了,之前是可以自动调用,现在不能自动调用,不能自动调用我就自己调用嘛。是吧,同学们你不能不能这个这个自动调用,那我就自己调用吧,这个是没有问题的。啊,这个是没有问题的。
22:01
所以。其实啊,如果说这个问题咱们不解决,其实也没有关系的,因为我下一步呢,下一步我的解决方法就能够把这个问题给屏蔽掉了,现在是因为要继承他没有办法。后面呢,一会儿呢,一会儿我就把这边的跳转啊,全部都转移到统一的在外面去进行处理,那这个问题就不存在了。啊,这样吧,现在我先硬着头皮把这问题解决了吧,碰到他我就解决他吧啊。稍等一下啊。这是一个float controller。这个controller。他继承他。我们以前他在调用的时候。是这边有个叫this.get是能够获取到connect上下文的,呃,现在这个上下文获取不到了。啊,现在获取不到,这样吧,我这边写个in。我把这个select contact传进来。
23:03
我把它传进来,那么这个就暂时先注射掉。那这个把它删掉。我暂时先这么改。我把它传起来。Select把它传进来。叫view。那么我这个flu controller。怎么办呢?这个方法怎么办呢?同学们,这个四位方法还要吗?不要了吧?没啥用了吧,删掉了啊。删掉。哎,稍等一下啊,我现在我看的是哪个里面的,我看一下啊。我刚才不是已经剪切了吗?对呀。我是不是看到这个看的不对啊。我剪辑的上面的完蛋了,我要检查一下。看一下啊。不来。这边没动过啊,不要紧。诶,奇了怪,那我剪切在哪里的?明明不是剪切的吗?
24:04
我应该是剪切的啊,不管他了,那我把这玩意删掉了,不要了啊,他其实就不可以不要了。好了,就这样。我们再继续啊,刚刚我说的这个select,我们需要把它传进来。需要把它一步一步的把它传进来。就是这个flu。那这个地方怎么办呢,同学们?Private。我。然后。我要不去给他传一下吧。啊,给他把它传进来。这个叫。好。他继承他。啊,继承他,因为这边要用啊,因为这边要用。Solid contacts。
25:04
来吧,那我就写个吧啊嗯,这个代码稍微有点点麻烦啊,但是后面这个代码我会全部把它删掉的。回到哪里呢?同学们回到我看一下啊。在这个地方,我是创建这一个一个的对象,把一个对象把它扔到这个map里面去,那么在扔进去之前,我要在这边做一件事情。啊,我要做一件事情,稍等一下啊。Could you see。把它放到这边来。好,我要得到一个大克拉斯对象。兵。或者加CTRL。Controller b class。等于它。然后呢?CTRLC把它放到这边了。啊,得到一个实力。然后呢,它里面我要去干嘛呢,点get declared field。我要找到这个field,找到他。找到他。
26:03
好,读到这个field。我要给他赋值啊。然后呢,我这个名字。啊,叫field。叫。Contact field。然后给它赋值。Can you see。点set accessible to暴力访问,然后点set。是不是叫set呀,Set。记得赛德堡,记着他。对象给哪个对象?给这个对象是不是。赋什么值?This。点get看到了吧,把这给它穿进去。这样就可以了啊。这样就可以了。好,这个代码可能大家会看起来比较晦涩难懂啊。就是因为我刚才出错,出错的原因,他报了一个空指针,空指针看到最后。
27:03
空呢,看到最后我们会发现是这个get select contact出问题了,Select上下文它当前已经不再是一个,它已经不再是一个吗?那他哪里会有的上下文啊。啊,所以我们得必须得把它传进去,虽然当前的代码显得比较笨拙。啊,但是后面我我会把它删掉的,同学们不用担心啊,暂时先把它写上去。啊,因为后面的解决方法我要一步步优化啊,后面的优化步骤还没有写的时候呢,这边只能这么做啊,因为我想把这个项目,我想把它先跑起来。停一下,然后咱们再启动一下。好,我们回到页面上去。把这边全部关掉。
28:02
关掉关掉。好了,现在是float点度,那么float点度给我报的是404啊,这不对啊,报404肯定是他这个解析文件或者是哪里出问题了啊。好,这边有问题来看一下啊。当中的它的实例化这个这个构造方法里面出问题啊。这边出问题了哦,我知道了。啊,这边去。我是在这个good方法里去写的,真是的。这个很讨厌啊。进来勾的方法不行,剪切掉。我们把它的出招方法拿出来,Public void in。他有个出潮方法叫config。好,Conve。把它拿出来。把它扔到这里面去。啊,在它的初始化的这个方法里面写啊,不在它的构造方法里面写。这样的话,我这个this.get。
29:02
应该就问题不大。啊,这样的话应该应该就问题不大了。叫get,或者我们可以通过稍等一下啊,Config对象我看一下啊。这是init初始化。我来看一下啊,Ctrl o。会用这个方法。然后呢,这边有个con。所以我当前这个init config稍等一下啊config。点get,他这边可以获取啊,不通过这次获取。通过它来获取,我试试啊,再来试一次。
30:02
刷新一下。我把这个问题来画个图来说明啊。现在同学们它是不是。CTRL是不是已经不再是一个了?它既然不是一个,但是我却还想在它里面去获取,获取上下文,是不是需要它的上一级给它赋值啊?就这个意思。啊,我们错误解决的原因还有错,这个真讨厌。Get contact怎么会还有错呢?这个get还有问题。
31:09
Dispatch稍等一下啊。这是这个应力的方法。我看一下这个印尼的方法有没有被调用啊,我先打印一下。In it con。好,把它全部清空掉啊。把这边关掉,这边关掉。这个关掉吧。然后。In。稍等啊,我看一下他的源代码回到这。Can you in。里面会继续调用这个方法。会去用这个方法。
32:00
那么这个方法我可以去重写,那这个方法啊。这个不重写啊,那么在这个里面重写。回到这儿。啊,这个参数不要。然后呢,我在这边写个this啊。这边写个this,再来试一下。回到这边来。来看一下啊。好,进来了。先打印。我们来看一下这里面this,它里面能不能获取到。这边有个叫con。啊,Conve对象。好,Con这个对象。Class。
33:14
好,我们来试一下啊。来试一下。呃,一直到一直到这个地方。我们来看一下。好跳到这边来,好跳过来了。跳过来之后,我们再看一下这个this.get能不能执行成功。啊,可以的吧。这次咱们就把它设置上去了。所以我们再来看一下,看一下这个冰OG。我们开一下。B obg BG在这儿打开。是不是有个值啊,叫application,叫application叫叫个叫或者叫什么门面。借的对象。好,没问题啊。这样我就跳过去了,OK。
34:01
再来看一下啊,到底是什么问题。哎呀,这个很讨厌啊,这边他还是报了控制灯啊。嗯,他还是抱着控制针。Super点点。Float controller。这个问题很很讨厌啊,我需要把它传过去。Super,我要用super里面的。稍等啊,稍等一下,Super里面有一个view里面。Or?这边一个K,那我基本上我就知道了啊,已经没有问题了啊,其实已经解决了,我们刚才已经得到了,我忘记在这边调用了,这边in的方法已经被我改成带参数的了吗。那么我们回到回到这个叫fruit controller里面。
35:00
啊,请你回到这里面去,怎么做呢?我们。这边有个叫大家想一想,我们刚刚是不是已经把solid conduct付给他了?我们已经付给这玩意儿了。你付给他之后。但是它的负类的应力的方法,你有调用吗?你其实没有调用。啊,其实是没有调用的。好了,我们给他,要不我们给他准备一个赛的方法吧。我们就不再用他的这个属性,我们可以用它的set方法。这也是可以的。啊,也是没有问题的。好,这个还是真的是真的是挺挺麻烦的啊。Several contacts。我们调一下啊,稍等一下啊,稍等一下。Set。So let the。好,用一下赛的方法,然后再来。
36:01
Can you see。回到,回到哪里去呢?回到我的dispatch里面去。我这边是获取的这个field是吧,同学们。那我也可以获取它的set方法。我也可以去获取它的赛的方法。Controller,并点get method。这个叫set select contact后面需要一个contact。Context。Class。啊,调用一下这个method的方法。好,先停掉。这的。然后。我们在这边get一下。Method叫s context。Method。等于它,那么我就用这个方法。点方法。然后把我们的对象传进去,对象不就是个冰obj吗?然后把物流值穿进去。
37:01
Value值。Value值不就是这个吗?穿进去。那这个我先先不要删掉。啊,VO把它穿进去好了。就这样吧。OK。那么稍等啊,把它删掉。那么这样的话,同学们。啊,我这边执行的是一个inok,那么这样的话。他会利用他的set方法,注意了啊,很关键,在这个set方法里面。我要调用一下super init。把我们的把它扔进去是不是啊。哎,是不是同学们,我用一下super.in的这个方法。啊,就是这样的,然后他这个应力的方法是要抛异常的吧。哎,没错吧,这边泡一场,咱们圈开启一下。没问题。啊,这边只能艾特呀,那行吧,那就艾特吧,那你这边一艾特。那你这个外面调的时候就就也会smooth是吧,不管它就这样吧,现在咱们再来试一次。
38:02
这个问题大家不要看我解决起来很麻烦啊,但是这个问题呢,我们后面会会把它这个解决掉的,因为我说了当前我们采取的是一个比较蹩脚的一个做法。它已经不再是了,但是它的它的类,也就是view best里面还然还需要是吧,同学们。后面我们会把这个会把问题解决掉的啊,所以呢,这个就搞成倒过来了,从上面往下面去传了。大家不用有太大压力啊,先看我先把它先解决掉就行。再来再看一下啊,还有什么问题。再点进去。好到这一步。再往下走。呃,还是报这个空指针,这不对了,同学们。再报这个控制针就不对了。稍等啊,我看一下啊。Method set accessible这个invo方法稍等啊,我看一眼。
39:06
我首先让我仔细的看一下啊,我首先在这个地方获取到这个并对象。而且我获取了它里面的这个set method这个方法。然后我要调用这个方法。这样的方法,我就把Z点。进去是吧。这边是能穿进去的是吧,这个对象是有值的。所以我就执行他执行这个对象。那么这个对象也就是他。我要执行这个方法。这个方法执行这句话。然后再执行这句话。那这个点我把这个塑料connect传进来,那么回到这里面去给它赋值。Conducts。我感觉没有问题了啊。应该是没有问题的,我来让我来看一下啊。
40:02
回到这边来,我是个断点啊。然后到这边来,我也来设个断点。再来看一下啊。这个方法是一个硬力的方法。停掉,再来启动一次。再来看啊。现在已经到con这个方法了,进来,然后呢,把这个断点去掉往下走。走到这边来。然后再往下。当前我的BG里面的肯定是now,但是我们执行完这句话看一下。好,到这里面来,到这里面来,这个float controller,它的solid肯定就有值了。
41:05
然后呢,我们就用super.init。啊,用super.in的方法。好利用它。那么利用它的话就会回到VIVO base是吧?当前的这个有值吗?有值的吧,有值的,然后我们再进去。进到这个方法内部去。进来了。进到这边来。是不是有值啊,所以这个temp这这句话肯定是没问题的啊,执行过去,然后再执行它没问题,在执行它这边应该都没问题,一直往下走,一直走。这边应该都是没有问题的,然后到这边来啊,我知道这边哪里出的问题了,是这个方法出的问题,同学们。是不是啊?我这个值已经付进来了嘛,但是你本身你这边这方法是不是没改啊。哎,你还是写这个this.get出来的吗?是吧,同学们改一下就好了啊。
42:00
好,这个比较简单。啊,这个比较简单,回到这边来。好,然后呢,你这边不是要传一个进来吗?那行吧,我就写一下this.connect等于connect行不行,同学们。然后。这个地方你就改掉,直接写成this点。Connect。是不是就行了啊,这样就就能把它解决掉好吧。我把断点全部去掉啊,把断点全部点那个,把断点全部屏蔽掉。我们看一下啊,他能不能一次性把它启动对了。哎,出来了吧。现在就出来了。
43:00
OK。但其实说实话啊,大家不要认为这个解问题解决了,你就松一口气,其实我现在解决这个问题呢,呃,其实意义不大啊,其实意义不大,因为我们是反向反过来操作的。啊,它这个内部的这个组件已经不再是,但是它还却需要这个没有办法呀。啊,没有办法,因为你这个安对象需要调用的时候,需要需要需要用的玩意。后面等我们,我们把这个C听好了,同学们等我们后面把这个C,把后面这一坨剪切掉。他就变成一个普通的类。那这个时候他就不再需要这个,明白我意思吧,啊,现在没有办法,咱们让大家感受好一点,能够不报错,所以我就硬着头皮把它解决掉啊,暂时先那么去解决,所以你点下页,点下页都没问题吧。现在应该是都没问题的,OK。好,我们赶紧把思路再回到我们主线上来。现在我们做了一件事情啊,同学们,现在我们在我们这个项目里面。
44:00
我们追加的一个中央控制器,稍等一下啊,不是这个。在这里面。叫dispatch,它才是一个真正的一个。他处理所有的点度请求。然后呢,它会从这个删掉了啊,它会从我们的pass里面。也就是在。也就是在这个地方。从我们的pass里面能够得到一个hello,或者得到一个的点。啊,或者我们写一下吧。上点度,我们最后要把它得到float。好,下面这个要写一下或者。或者float对应的是float controller是吧,同学们对应的是它。拿到它之后,我们就想调用它里面的一个一个的方法,是不是我就想调用它内部的一个一个的方法,那么调用它内部的一个一个的方法是依赖于这个op,是依赖于这个opera的这个变量嘛。
45:08
然后我们通过反射来进行调用。啊,这是我们想要给传输给传达给大家的这么一个知识点,叫dispatch。好,再来。
我来说两句