00:00
那接着我们看这个情况三,情况三呢,我们这还是举了这样的几个例子看一下,嗯,这个是用类来调实例方法,这个呢,首先说有难度,这个呢不是特别好理解,但是也能理解是吧?嗯,看一下这呢,我们写了一个叫comp啊,这个compor的话呢,呃,它这个抽样方法长这个样子。它是个int型,然后我们这个string当中,String当中啊也有一个方法,这个方法呢,是用一个搜串,它呢去调这个compare to,诶然后呢,返回,呃,这个把另外一个组串放进去,呃,返回的是个int,你要严格上来讲,他俩好像不太匹配。你看这里边儿写的俩,这写的是一个,然后你这块,呃,这个类型这块一样了,但是这块是不是不一样。啊,这个有难度,就难度到这儿了啊,就是大家呢,就是可能会想上面刚讲了两种情况,说我们这个抽象方法,这个形象列表和反问类型啊,跟我们这个方案营的这个呢,还是说刚说要一样,哎这个一样,其实主要适用于咱们这个。
01:09
这个情况一啊和这个情况二,这个情况三的话呢,就有一些区别了。情况一直冒号,还还还容易误解了,这样往前走往后走走啊。CTRLC,这情况二看情况三。啊在这里边呢,我们主体上描述的它呢,也是针对于啊,这个情况一和这个情况二,这两种情况呢,遇到的相对多一些,但是呢,第三种情况也有啊,之所以第三种情况难理解呢,或者大家呢,很难在开发当中你会想到去用方法引用,就是因为呢,它这个不是特别匹配。啊,不是特别匹配啊,你看这里边就是。这呢是俩参数,你这是一个参数的这俩参数,这也是一个参数的这一个参数,这个都没参数了啊,可能我们就想不到说要用了啊,那什么时候这样能用呢?咱先写写,然后呢,咱们试图呢,总结一个小的规律看看啊,那先看这个问题,那这呢叫这个compor,咱们就直接来写了。
02:17
这个位置我们不妨就写四针。来写string啊,然后呢,这里边COM1等于右边啊,右边呢,我们这个T这不就确定了是string了啊,我们就叫做S1S2不有俩吗?小括号就别省了,哎,然后呢,再指向一下,指向右边呢,我们就想比较一下这两个字符串大小啊,大小呢就return return也省了一一个执行语句,大括号也省了,直接呢S1。按I一点,我们就compare two,直接写个S2就完事。这样子。哎,具体调一下啊,比如我们叫compare这些个ABC。这个abd,哎,得到了一个具体的值,把这个值呢,我们输出一下。
03:02
看这样。好打印。哎,这呢就涉及到后边这个C减D啊,这是一个复数了,行,这呢是我们说的,哎,拉姆达表达式CTRLC啊接着我们来看一下这个方法引用怎么做啊,方法引用左而不变,CTRLCCTRLV过来啊这个我们写个二。正常来说说你这个方法有俩参数,我们这一个参数按说不太靠谱。啊说呢,按说呢,不满足上面说的方法赢的这样一个要求啊,哎,但是为什么能用呢?哎,如果它有两个参数的话,这个第一个参数。是作为诶,你下边这个方法的一个雕者出现的。那这有俩这个T1呢,是调这个方法的这个主体,哎,然后这里边呢,说白了就是你这因为是拿它调的这块呢,相当于就没有必要再去写这个题了,你可以这样去体会。啊,像这种情况呢,那你看下这个T是什么类型的,咱们T要说是string型,所以呢,这块你就可以直接写个string冒号,冒号写一个compare compare to嘛。
04:11
哎,多少还是有点崩溃的啊。嗯,就是这呢,假设有两个参数,你现在呢,里边调的是另外一个方法,说这两个值还能匹配上呢,当你发现如果是两个参数的时候呢,第一个参数呢,是作为我们里边这个方法的一个调用者出现的,哎,这种情况下的话呢,也存在这种方法引用,只不过这时候呢,我们不是拿一个具体对象写的了,而是拿着这个类写的啊。行,这个呢,咱们就直接说就行了,大家还是肯定不懂的是吧,这个主要是得写写才行啊,你通过这个写呢,去感受一下啊ABC啊abm这样。哎,这个就是负九了啊哎,对应的它的这个二次玛值减去这个二次玛值得到的,诶这个呢,比上面两种确实要难一些,再来一个例子,再来个例子,这个呢叫by predic,也是个断定型的,只不过呢,它有两个参数参与了,我们比如说写一个啊by predicate,这呢,我们写还是四吨啊,这个也是四吨这样,呃,然后呢,嗯,Prere一看右边,右边的话呢,我们这个嗯,都是这个T类型的啊这呢,我写的这俩类型呢,都一样了,嗯,都一样,对,咱们此时呢,这不都代表的是死锥型的,那小括号得有S1,逗号S2。
05:39
哎,这么着,呃,在这里边呢,它返回一个布尔型,那不妨呢,我就让S1呢去调这个E啊,写个S2。哎,省略了这个大括号和return啊,嗯,然后P1,呃,这个直接我们s out啊嗯,咱们呢,去调一下它这的叫test的方法嘛,诶写一个ABC写一个ABC,看看他俩是否equals。
06:05
行,这个没问题啊,其实重心呢,咱们不在意这个结果,而是在这个赋值下边呢,我们用这个方法引用来做。方案引用左边这块不变啊,看右边。改成是二,正常来讲的话呢,你这俩参数那是个布尔型的,我这个位置的话呢,不是俩参数也是布尔型,按说呢不匹配,但是呢,你会发现它的这个参数一呢,作为我们下边的方法调用者了。啊,像这种情况的话,我们可以用这个也是方法引用啊,那此时的话呢,是用类来调的,所以下边这个呢,直接写string冒号啊,直接呢写E就可以了。那就这样写。诶,Ctrl c ctrl v abd,看abd吧,比如说。嗯,是这样。啊行,那这个我们还接着来讲啊,这个大家呢,一会儿呢,自己写一写感受感受啊嗯,再往下这呢,是一个方神函数的话呢,它是一个T啊,返回的是一个二,哎,你看我们这个啊。
07:14
哎,这个里边你就一个参数,你这就一个参数,还是我们讲的哈,这一个参数呢,就作为你下边这个方法的调用者了。向调用者这个T呢,在我们这里边呢,就是employee了啊,Employee的一个对象啊,调get name啊就这个意思了,比如说你看我们写一个啊,上面呢,还是这个function。Function。哎,这个位置我们先写一个string,呃,返回的呢,是它的一个,呃,这个是一个employee。诶,这呢,返回的是一个磁针。等于诶右边呢,我们写的时候呢,脑子你去呈现一下,或者你去想到这个function式,它的这个抽样方法,诶它这个方法的话呢,我们直接箭头操作符的左边写着一个行参,就一个employee类型方,我叫个小E了啊右边的话呢,我们去获取它的名字啊,1.getname。
08:08
这样呗。那一点盖内蒙。再呼他名啊,那具体呢,咱们写一下啊,叫funk一点,哎,咱们去调一下这个apply。调调方法呢,你需要传一个具体的员工了啊,这我们需要一个。又一个employee,哎,先是它的一个ID。姓名,哎,比如Jerry。23岁,哎,工资哎这样,哎out。得到我们一个employee,哎,行,然后CTRLC,诶把这个employee扔进来,诶我们这个方法执行完以后,就得到了你的name,把这个name呢,我们做一个输出。哎,这么着这呢,还是我们的这个拉姆达表达式,再接着我们下边来写一下这个方法引用啊,嗯,还是这样去分析啊。
09:03
这个第三种情况确实要难,正常参数一个这没有啊,那这个呢,你放的谁呢,你放在那T,就是你这里边儿的这个。放的是employee。而我们这employee的话呢,呃,这个相当于我用这个T去调它的get name,就是你看我们上面有俩参数的时候,哎,你把这个T1呢作为方法的调用者,T2呢就放这现在人家这块一个了,那T呢还是放前边,后边这个呢就没有了,哎就这个意思,所以下边这块呢,左边不变。哎,右边对右边呢,直接就employee了,只要你分析清楚以后呢,写的话呢,其实很简单啊,哎,这就完事。啊这样写,然后下边你具体调调的话呢,你传一个这个对象呗,还有employee就行啊。方式二这样,上面这个对吧。
10:02
这个这个是二是吧,那这个也得改一下啊。行,这没问题,没问题,那这个也是二忘了改了都是吧。嗯。行。来执行。哎,这就OK了,好,这呢是我们说这个方法引用的这个第三种情况,哎整个的话呢,就这样的三种情况,哎对象掉静非静态啊,类呢掉静态啊类呢掉非静态,哎对象呢掉静态那就没啥可说的了,对象你掉静态的话呢,这个不就相当于类去掉嘛,对象调静态方法,其实呢,我们就理解成用类去调就完了,所以呢,这样写啊。行,这呢是咱们说的这个方法引用的这三种情况,大家呢,诶写一写,然后呢,你要说诶挺好,那在某些情况下,这是针对于情况一和二的,情况三呢,咱们刚才也稍微描述了一下,它的情算列表呢,不对应了,但是呢,像这个参数一作为你下边这个方法的一个调用者的时候也可以用,你要是能够想到这样的情况呢,你就用方法引用,你要是想不到,想不到呢,你就用拉姆达表达式。
11:19
拉姆的表示也想不到。你就老老实实的像以前这样写,这样也不会写,去看面向对象去啊,啊,这个不会写,这就不行了啊,这个得会。
我来说两句