00:00
来还有两大坨啊,一个呢就是视图鉴定啊,这个呢也很用的非常的多,视图鉴定是个什么玩意儿呢?这里面就包含很多前面讲的影视转换的概念在里面去了,首先看视图界定呢,它仍然属于类型约束的一种。叫什么叫view?那先说一下基本介绍吧。大家看这个小于。百分号我们原先是这样写的。这个叫做上界,如果你这写一个,这个东西就变成什么呢?试图界定怎么记。你看这个视图。哎,是不是有眼睛的,眼镜的概念就是看的意思对不对,你看这个百分号像不像一个眼镜啊,好吧,这一下就记住了嘛,就视图嘛,眼镜带过来了一个小眼镜啊,小眼镜记住了,你看就视否界定它的意思是什么呢?它比这个上界的适用范围更加的广泛。
01:07
除了所有的子类型,还允许影视转换类型有点意思了,也就是说,它首先应该是这种上界的一种。延续,同时呢,它还支持隐私转换,你说你可以不用,你你可以说这么理解,就是说我在进行这个上界传输的时候,影视转换也会生效。啊,这个语法现象就比较比较。多样化了,最终为什么看了有些我们初学者学完了过后,他看这种看不懂呢,你看这看这个语法你能看懂什么意思吗?这是一个method的方法,A是一个泛型。试图界定B。啊,然后后面有个阿,它等价于下面的两种写法,但是大家可能现在看不懂啊,但是看我们干脆把这个就不说,我们直接想案例完了之后再回头看。
02:03
那么我把这句话说一下,试图界定,除了方法之外呢,还可以使用,在类的声明和参数中也能用,如果是类里面要用呢,就是这样用的,这是泛型视图接距in的。啊,那么这样子讲完过后,大家可能不知道是在说什么,这样子啊,同学们,那咱们就不啰嗦了,直接上案例。这个东西你你用语言来讲是很难。说清楚的,那现在呢,我们直接上案例,还以我们还以什么为例呢?我们还以刚才讲的那个数,就是呃,我们我们刚才讲上界是不是用的比较。比较int呀,或者float的大小来讲的,现在我们还用它来讲。还用它来讲,大家看这里。我这里呢,写了一个compar common这个T,试图界定了一个comparable t,哎,这个comparable是一个接口。
03:03
对吧,这个我们讲过,那么他也传两个D,既然你是comparable的接口,当然它就可以用它的compar方法,最起码唯一变化就在这里,那么当我们写成这个东西。写成这个实数,鉴定过后,我们发现有个奇怪的现象,就发生了,什么现象呢?就是你直接穿这个整数这些。他就可以直接用了。以前是不行的,那么我们来看看他是怎么回事呢?来,现在我们写一个包,叫view。B。就试图界定,那么先看第一个案例,第一个案例呢,我就把这个名字给他搞成一样啊,呃,就写成零一吧。这个。View棒SDEMOE来一个VSDEMODEMO0来看一下,来一个object。
04:02
好,这个慢慢慢慢领会啊。我们就直接围绕这个代码来说话。好,大家看这一段代码,我相信同学们是前面应该还有点印象的,诶这段代码呢,它是一个类啊,这段应该还有印象。那这段代码我不做解释了,呃。这你们还有印象是怎么回事吗?说第一句话,看这个。这个说明是什么呢?哎,说明这个T是谁的子类呢?子类型呢,是compare t的这个子类型。啊,Compare的一个子类型。啊指类型这类,也就是说这个T只要是实现了compare label接口,我就传进去,这是第一点,那么它和什么呢?它和这个唯一的区别在里,这个啊就是你们看到仕途界定。和这个的区别,如果有面试官问你啊,它的区别在什么地方呢?
05:00
区别就是前面这个视图界定呢,应用范围更,它的应用范围更广,它支持影视转换,就是前者视图界定。试图界定。界定。色主色主鉴定,支持支持这个影视转换。啊,那说的是什么意思呢,来。直接写案例了。同学们还记不记得我们在前面写过一个东西,我是这样写的,六一个compare common。然后呢,我传入了一个一和一个20。啊,假如传了这个,然后。好,我们来这个地方呢,写一段代码,写一个什么呢,咱们就写一个comp compar。Comment。啊,零一吧。好,然后呢,我们现在啊,同学们。我们现在来看一个东西,叫Canberra点。
06:00
Greater。来看这个时候会会不会能不能用起来的问题。好,我们看看它返回的这个较大的值是什么,或者说会不会报错,我们拭目以待,我们来跑一下。啊,跑一个。好,看看能不能行。诶,欧了。哎,这个很怪,你看原先我们这样写啊,同学看原先这样写。你跑下。哎,你跑一下你试试看啊,跑不起来,哎,咱们把这个换成一个小眼镜,诶小眼镜它就比较厉害了,那怎么办,他走。诶这个时候呢,他要干什么,他就成功了,那他怎么成功的呢。他怎么成功的呢?这里面他使用了。他使用了这个影视转换。影视啊,影视转换,那么影视转换在哪里发生的呢?来,我们来分析一下啊啊,看下面这个幻灯片。啊,看下面这个幻灯片,它在里面呢。
07:02
试图界定它会发生一个影视转换,就是说它会在进行传这个int的时候,它会调用,它会直接调用我们的这个,就是你不用写,他就会去找到一个这样的方法,比如说你这里面的int。Two,我们的intake。就是他会给你们给我们转成这个玩意儿。啊,那么这是它的一个使用,而且大家看这段代码,我们原先写的这个转换,我们是有这种写法,还有这几种写法,我就不啰嗦了,直接拿过来看。打开代码。看到吗?原先我们这样写是可以的,还记得吗?就是原先我们这用ineg value20这个是这个是用这个是那个上键这个是OK的,现在连这个讲写都可以了,以前我们float的时候,我们要这样写。你就说你原先用这个,这个是什么呢?这个是以前。
08:04
以前这个这个视图,这个上界,我们是这个写法,他跑起来现在仍然支持,而且现在变得也很简单了,他也可以这样写,这样呢,他会他也会直接。注意听这里。这里。这里会直接进行啊,会进行啊,会进行隐式转换。隐私转换。影视转换,也就是说你没有必要在前面再写这个东西了,你连这个都不用写。也可以跑。就变得更加简洁好变得上面这个呢,也是会发生隐私转换。发生隐私转换,那这个时候呢,我们来运行这些都能跑起来,也就是说它不但支持以前的写法。还支持现有的。一个更简洁的写法,我就写到这里啊。及第三点。
09:02
即什么呢?就是试图界定。试图界定不但。不但支持支持以前。以前这个,呃,上届的上届的这个写法。同时同时支持简写啊简写。简洁的写法,简洁写法即我们刚才讲的呃,这种写法,比如这种。啊,比如这种他都支持了。它里面发生隐私转换。好,就这写法,那么现再看这几种,全部都能跑起来。运行一下。全部都能跑起来,OK,全都是正确的。全都是正确的,包括我们后面再写的这个都是OK的,好,这个就是试图界定的他的一个案例一,案例一,好,我先截取一段视频。
我来说两句