00:00
哎,下面我们看下这个叫构造器引用,其实构造器引用包括还有一个叫速度引用,跟我们这个方法引用呢,其实类似。其实类似就是看他们这个匹配的这个情况,比如说我们举这个例子。我们举这样的例子,哎,构造器引用,嗯,我们现在呢,哎想描述的是这个问题叫supplier。诶,Supplier这块呢,它是一个叫供给型的一个函数,我呢想得到一个employee,什么也不往里放,给我们返回一个,这就是供给型的意思,右边什么也不放吧,这样吧,返回一个什么呢?我想去new一个对象,New个employee呗。呃,这个正常来讲,我们应该是return一个是吧,Return不是给省略掉了吗?这个能看懂吗。这个OK吧。不OK的话呢,这就再写一个原始的呗,哎,这右边右边的不是new一个叫supplier吗?这个位置我就直接扭了一个,哎,Employee,哎,这是咱们最初的这种原始的写法,嗯,原来这样写,现在呢,这不是把这块都都干掉,直接的这个干掉,小括号保留,然后这个具体的花花体,就这一行大括去掉,Return去掉,就这样对吧,诶CTRLC,那这样要能写,说下这个你要是写的话呢,拗了一个对象用的是构造器,说这块呢,还可以使用这种叫构造器引用,构造器引用。
01:48
这我写一个二右边。构造器引用我们调的是空餐的构造器,哎,我就直接呢employee冒号冒号new搞定,不懂是吧?解释这个方法没有参数,有返回值。
02:08
那我们这个employee哎,你像这个employee它的一个空参构造器,它的空餐构造器呢,不就是长这个样子吗?哎,Employee这样,哎就相当于你这是个方法,你把它呢,比如也看成个方法,你没有参数,我也没参数,它返回的是个T,我这时候new的时候不就找那个对象吗。哎,相当于我们调它的话呢,不就是造了个对象,这个对象呢,就是你这个T,那你看我们这个employee这块,哎,确实有这个空单构造器,你这个位置,比如我写一个c out这个位置呢,你写一个in input大写的这样小括号这么照一下,然后呢,你看回过来我们调用。你看这不就诶。
03:04
嗯,没掉呢,还是吧,我们通过这嗯up点,那咱们这边去get,这时候你这不才在调用嘛,上面管是造好了还没有执行啊,哎,我们这块呢。Ctrl X out一下啊,这就调了一下,然后CTRLC啊下边这块呢,再调一下这个呢是。写写错位置了哈,把这个放到这儿。一二啊,这样通过它掉的,哎,这个通过它掉的啊,然后直行。那这不就执行了吗?哎,这呢,我们就打印了是吧,这是两个对象哈。行,哎这呢就是我们说的这叫构造器的这个情况,哎下边这个呢,其实还是调了构造器这个呢,我们是一个方神这个方式呢,返回是一个二里边呢传了一个这个参数,哎,我们这呢,方神这个传进去这我们看一下这个隐employee啊有一个这样的一个构造器,我们可以把它看成是你传进去这个T,哎返回的就是employee,所以这呢先写上employee,然后诶不对吧,先写inte是吧,这呢是作为这个行参的,诶法文之类型呢,是写在这了啊,诶等于。
04:29
那右边的话呢,啊,这个这不决定的是它嘛,哎,我们就写一个ID呗,哎返回的咱们这块呢,去new这个employee,把这个ID呢放进去。哎,这是这样写的。这样子啊,诶这样写完以后呢,你这块呢,哎,放个一点,咱们去做一个apply,诶传一个比如ID1001,诶这样out enter,这不是就返回了一个employee吗?哎,就它啊,然后接着呢,我们来看一下这个构造器引用。
05:11
诶勾到气引用,哎,左边呢,还是这个。那右边右边的话呢,其实都能猜出来咋写了。Employee,直接冒号,写个new就完了。ID不用写了啊,不用写了,就是呃,因为呢,你这块呢是传的是个印的型,我这呢里边也有一个对应你这个跟结构一样的那个构造器,咱们方法引用这块呢,不也都是没有写这个具体的方法的参数吗?都没写啊,广式方法名这块也是一样的。此时呢,这个位置掉的其实就是我们employee的这个构造器。啊,怎么证明呢,那也很简单,你就输出语句,把这个呢,我们写一下这个。
06:01
放到这儿。哎,这样就行,哎,我们看一下,你看它掉不掉啊,呃,下边呢,你记着这块还没有执行这个方法呢。嗯,咱们调一下这个play,我写个1002。这样。你看这不掉我们这个构造器了。哎,这不是还赋值了这样啊,行,这个知道大家都比较晕啊,这个呢,就是下来下来写写看,找找这个感觉,呃,再看下一个,下一个呢,这个叫哎by function,这by function呢,就是放了两个这个自变量,就二元函数,其实反过来是个二,那正好呢,我们这个构造器啊,有一个这样子的。对,ID name行,那过来我们这个function by function这呢是一个integer string。
07:05
啊,这个逗号employee。诶,右边那右边呢,这个括号是一个ID,是一个name,哎,然后对new一个employee ID。这样啊。好,然后呢,下边你这个也是咱们给他造一个吧,造完以后直接就返回了,那直接就输出了。Apply这个ID1001。汤姆,哎,直接呢就输出了啊,哎再往下。这边不变CTRLC2。对这个呢,是不是跟上边一样啊。这样就搞定了,哎,对应的我们构造器有的这两个参数,你这块呢,完全匹配啊,不用写了,就嗯,还是直接我们调一下就啊CTRLCV。
08:08
那二表啊。你看这里有调用。行,这呢就叫做这个构造器引用啊,这个简单的来描述一下,其实跟我们这个方法引用啊类似啊。哎,和方法引用类似,就是嗯,这个前面我们讲这个抽象方法啊,这呢也有提到叫函数是这个接口的抽象方法。的这个行参列表和咱们这个构造器的这个行参列表一致,然后呢,这个呃,抽象方法的。这个返回值类型即为我们这个构造器啊所属的类。
09:05
啊,所说的这个类啊的类型吧,这样就是你这个抽象方法呢,我们有一个反应值T,这个T呢,就是你要造的这个类型的对象啊,下边呢,都如此啊就OK了。成,那么构造器引用你要稍微知道这个意思以后,那么数组引用呢就不是难点,因为你完全可以把数组就可以看成是一个类类型。那就没什么区别了,来看一下这个function function的话呢,我们这样写,Function的话呢,我们先写一个具体的,比如说叫integer发型,咱们说过不能用这个基本数类型,你想用这个整形都得用这个integer啊,或者是这个大写的long啊表示啊,嗯,返回的什么呢?咱们想返回一个死string类型的数组。那么前一个参数呢,是定义我们这个数组的长度的。
10:05
右边这个右边的话呢,脑子里边有这个函数的印象啊,我写到这儿了,你能看到,不写的话,脑子也得浮现它有一个参数,这个参数的话呢,就是我们的这个长度哈,哎,是一个LAS,诶诶烂S1小块就行了。你看接着我们呢,需要做一个返回,我们就拗了一个死锥形的一个数组,长度呢,就是我们的这个LA。这样子做的成,这就是这么个情况,那这块写完以后,写完以后就写这个string的话呢,我们要变历还不太好看啊,咱们换一个类型吧,哎,大波的默认值是0.0,这样你能看到这数。诶,String也行是吧,使劲是no吧,也可以行还用吧,那这个放个一点,咱们第二页这个play我写一个十啊短点吧五。
11:01
那相当于咱们这时候就创建了一个长度为五的一个四针形数组。这样,那这块咱们这个做一个输出吧,输出我们就简单一点,直接ARA瑞点two盾把我们AR1扔进去。哎,这不就是五个啊,这五个now,哎这呢是我们说的这个这个拉姆达表达式的这种写法,然后呢,咱们看一下这个数组引用。引用数独引用,其实呢,你把这个位置呢,你就看成是一个构造器就完了,跟我们上面写法其实就一样,要是那样的话呢,这怎么写啊,String string不是是string数组是吧,是不是得整个它呀。哎,这不就搞定了。这就完事啊。
12:03
这呢,来一个二二长度换一下,比如十。二这样。哎,这呢就长度是十了行,这呢就是我们说的这个构造器引用,哎这个构造器引用这呢写一句话啊说呢大家啊可以把这个构造哎不是构造数组运用,把这个数组看作是一个特殊的类啊,那么则啊写法呢啊就与咱们构造器引用呢就一致了。哎,就行,那之前呢,咱们是想用一个employee,所以写employee new,现在呢,你把这个数组啊,你就看成是一个类了,那就这样写就完了,成那关于我们说的拉姆达表达式啊,函数式接口。
13:00
回到咱们最初这嗯拉的表达式作为函数式接口的一个实例。啊,原来的话呢,我们都是直接new写这种匿名的方式啊,说讲了这个拉曼达表达式以后呢,诶,咱们在扎二巴以后的这个版本当中,大家呢,就可以用拉曼达表达式的方式来给一个函数式接口呢去赋值。嗯,那讲了方法引用和构造器引用,包括数字引用啊,提到一个问题,就是在一些特殊的情况下呢,我们还可以用方法引用或者呢叫构造器引用来替换拉姆达表达式,那你能替换拉姆达表达式,拉姆达表达式呢是它的实例,所以方法引用和构造器引用也是函数式接口的实例。主要呢,你就看什么时候能够用,想不起来你就用它,再想不起来就是以前的那种写法啊,那大家呢,尽可能的稍微熟悉一下啊,因为确实在未来新的框架当中,底层会用到这个拉姆的表达式,你也可能会看到方法引用,最起码你得知道他在干什么吧,看完这个东西你都不知道他在干什么,哎,这个不行是吧,至于说呢,你写不写,你可能你写这个想了一个小时,可能你要写这种传统的方式呢。
14:21
两分钟就完事,那肯定还是写传统的方式啊,但是就怕你看到源码时候你看不懂,所以大家呢,还是稍微熟悉一下啊。
我来说两句