00:00
来我们接着说呢,特征六,特征六呢也是一个语法改进,叫做钻石操作符的使用升级啊,那英文呢,对应的叫DIA operator啊,翻译过来呢,叫做钻石操作符。啊,实际上呢,我们在讲集合的时候呢,就用过这个所谓的钻石操作符,哎,我们呢称作叫泛型啊,叫做泛形了,因为它的这个外形呢,大家看两个监号放在一起呢,有点像那个钻石,所以呢,我们就称作叫gar operator了。好,那这里呢,在JDK9当中有什么样的新特性呢?我们来看一下这个代码,先说一下啊。嗯,我们在JDK8及之前的这个版本当中,如果我们去拗一个哈希赛的对象啊,没有这个大括号的情况下呢,是可以的啊,原来的时候JDK7要求我们之前这个后边的一个监控号中还要写上string,然后后来呢,我们的语法改进了,说呢可以有类型推断啊,后面的监控号中放的一定是string,所以后边这个呢,可以省略类型了。
01:00
那现在的话呢,又有一个新的特性了,我们在这个对象后边呢,加了一个大括号。那这个的话呢,这个熟悉Java语法的同学呢,应该比较清楚了,相当于我们创建了一个继承于哈希set的匿名子类的对象。啊,而这个呢,在GDP8当中呢,是不允许的,那九当中呢,就允许我们这里的这个匿名实现类或者匿名子类的对象和我们的钻石操作符共同使用了。哎,就是这样的一个特点。好,那下边呢,我们举例说明一下这个情况啊,比较简单,那首先呢,咱们在这个基于JDK8这样的一个工程当中啊,包。我来创建一个类。Government operator。啊,它的一个测试。啊,在这里边呢,我们去提供一个方法。Operator。啊行,我这个方法名呢,就叫做它在这里边呢,我们去创建一个set,哎,声明呢,我就写成一个接口了啊哎,等于new一个哈set。
02:06
这个语句呢,是没有问题的,呃,刚才我们也提到了哈,说后边这一对监括号中这个string呢,是可以省略了,呃,因为咱们后边这个,呃语法更新以后呢,这存在一个叫类型推断。啊是可以省略掉了,那写起来呢就更加的简洁一些,然后呢,我通过这个set的话呢,像它内部呢,去添加几个元素。呃,添加一个美眉。好,然后呢,嗯,还有兄弟姐妹几个,比如姐姐。哥哥弟弟啊,这个你就不能多想了哈,这是兄弟姐妹几个?然后的话呢,我们去便利一下。啊,便利for循环,增加for循环,先指明我们元素的类型,然后呢起一个临时变量,哎,然后呢,指明我们当前的集合啊s.S。好,这呢就是个便利,然后呢,咱们写一个方法测试一下啊。
03:03
Past。Government operator。行,那我这儿呢,就调用一下我们这个方法就可以了。那执行。好,这个结果呢,已经出来了啊,结果已经出来了啊嗯,结果出来以后的话呢,我们这个说一下啊,这里呢,这样写法一点问题没有,那在JDK9当中,我们呢,说可以在这个位置呢,加上一对大括号。那现在加肯定是不对的,对吧?啊,所以这呢,我们就不在这里去演示了,你加上以后呢,他报的这个错误,你看一下啊,他说呢,Cannot use。啊,这个泛型或者叫钻石操作服with anonymous inner classes就不能够在我们这个匿名这个子类或者实现类当中去使用这个,呃,钻石操作符。啊,所以我们要想用的话呢,先先把这个注释一下啊,我们要想用,那只能是不带。
04:00
哎,这样只能这样去写。好,这个呢,我们说,嗯,把这个类型推断我们写到这啊。哎,这个呢,说编译不通过。好保存一下,然后的话呢,我们把这个类啊,这个文件CTRLC,咱们给它复制到咱们JDK9当中啊,放在这我CTRLV一下。好进来了,进来以后的话呢,咱们把这个打开。哎,下边这个呢,我就不要了啊,哎,此时呢,大家发现呢,我编译是通过的。啊,那此时呢,咱们就可以理解为我呢,创建一个哎,继承于啊哈希set的。哎,哈希set的,哎,匿名。哎,此类的对象。哎,就是这样一个情况,那跟我们刚才呢,还是有一些区别的啊,刚才呢,你只能是你一个哈set,不能够去创建它的一个子类对象,这呢其实就是这样来理解了,那有什么用呢?很多时候呢,我们为了方便起见呢,经常呢,习惯上呢给哈希赛呢去呃重写几个方法,或者在这里边呢,去做一些比如静态代码块,呃代码块的一些书写,那原来的时候呢,是不允许的啊,相当于原来哈题在等呢,你不可以呃使用它的匿名子类这种方式去去造对象啊,那现在的话呢,相当于就可以了。
05:23
啊,相当于功能上呢,做了一个扩展。行,这呢,就是咱们所谓的这个叫呃,钻石操作服的一个使用上的升级啊,比较小的一个知识点啊,大家以后呢,就这样用就行。
我来说两句