00:00
那下一个呢,这里呢,张一发还出了一个新途径,我们说张方对注解也提供了两点改进,一个叫做可重复注解,还有一个叫做用于类型的注解,对吧?说什么是可重复注解呢?就如现在这个PPT上这样,现在呢,我在一个方法上或者是一个类上可以重复的定义两次注解,听懂吧,原来这D个一角七以前这是不支持的,没问题吧,对吧?那现在呢,它给我们提供了这种方式,我们演示一下啊,演示一下叫做嗯,Test ano t t,对吧,叫做重复注解,重复注解与注解,注解与叫做类型注解,对吧。说重复注解的话呢,我们首先呢,得建一个注解,首先建一个class,比如说叫做MY,呃,Class应该建个。
01:02
注解吧,是不notation呢,对吧,比如说noy my an notation not是my notation是我的注解啊,对吧?当然呢,我们说注解中是不是可以重装点值啊,对吧,SG,比如说Y6,对吧,你甚至还可以指定个默认值,比如说叫做at硅谷是这么回事,这是以前吧,当然我们说还学了一些圆柱解,用于描述注解柱的注解吧,对吧,我们说那圆柱解忘了的话怎么办?哎,到时候告诉你们说,随便找一个你认识的呀,点进去呀,看看它是是不是个什么呀,CTRLC过来是不?CTRLV一下包是不是给你导了对吧?它给它表示什么意思来着,目标对吧?说可以说是类呀,属性啊,方法呀,参数啊,构造器啊,局物变量对吧?然后呢,这个return是不是表示生命周期呀,对吧?假如说我们以后想要写自己的注解,我们是不是可以用反射去获取啊,再注一些功能,那我们的这个生命周期得是runtime对吧?那么现在我们说要想定义重复注解是什么意思呢?比如说我们这里来个方法叫做public VO,随便来个方法,比如说so方法,我们是不是想在这来个MY呢?然后指定一个,比如说hello,对吧,我是不是还想来个my notation啊对吧?T,然后是不是来个叫做word呀,但是现在是不是不行啊,不允许。
02:34
那这个时候呢,我们说你要想定义重复注解,你先必须得给它搞一个容器,对吧,那就是这个容器呢,我们可能就得这样写,再创建一个嗯,注解叫做my a nots对吧?然后呢,在这里边呢,我们当然也可以指定那些生命周期,对吧?我们可以在这里呢,把这几个copy过来,是不是听累了对吧?然后呢,怎么搞呢?在这里搞个my education吧,MY,然后来个中括号,然后来个Y64。
03:19
是这个效果的呀,然后怎么办呢?然后过来呢,我们注意看啊,你要想定义重复注解,那么这个注解呢,必须得用一个叫做repeatable注解修饰一下,与此同时指定那个容器类叫做my anno.class给它修饰一下MY,嗯。那必须有层面变量,嗯。叫做Y。MY,这样行吗?他说必须,我有什么东西。
04:06
我觉得可以啊,我这中号不要俩吗?Value。小括号,哎,我改啥了吗?啊哦,我把装S是吧。反正现在是好了是吧,对吧,这没毛病吧,好吧,现在是不是好了呀,我是不是用APP repeatable这个指定了我那个容器类呀,对吧,指定了以后注意看你就可以重复注解来个at my对吧,然后来个小符号来个word说搞定对吧,说搞定了以后我们说通常我们可以怎么用呢?我们以后是不是会可以配合反射去用呢?对吧,配合反射,比如说以这个为例,我就test onoc.class是不是获取它的对应的大class实例还记得不啦,对吧?哎,你们后边用过反射吗?后来说没用过呀,听说呀,对吧,说反大框架底层是不全是反射啊,没有反射那都哪来的框架对吧,然后呢,我就可以叫做叫做get是不method的呀,获取这个受对吧。
05:25
然后呢,在这里没有参数,没有参数就不传得到它的这个method的实例,Ctrl shift o导一下包对吧,什么毛病啊,有异常,有异常是不是给它抛出去啊,然后这样的话呢,我就可以叫做一点上get a not get a notation的叫做。嗯。Annotation types。Receive吗?Receive types type对吧,那这个时候呢,他会给我反馈个什么东西呢?哎,不是是不是他呀。
06:07
这个是新的反射API是不给我们提供的方法呀,对吧,对吧,提供的方法啊。呃,是叫tap。怎么这么多个tap忽然看见?没看见还知道。Perter exception,这是注解的异常对吧?这个是参数,这个是receive receiveive是啥意思啊,这return。Get。这我就用对吧,说by tap呀,对吧,这个by tap,我们指定谁呢?这个my a not a not.class那它会给我返回myno对吧,Not对吧,等于它啊my not。
07:23
呃,不是,他返回的是什么东西。点点get a。BYT类型。T类型。那是还能推身呢,这麦了能贴身吗?麦了能贴身啊数组啊啊那就是数组,我本来是不是也是多个注解啊,对吧,本来也是多个注解啊MAS然后呢,拿到它以后是不是就增强后啊便利一下便利一下sit out一下我的是不myation呢?My an notation点上是不是value啊对吧?那这样的话右键运行运行hello word是不是都获取了对吧?那这样的话是不是就可以再利用一些重复注解呀,对吧,用一些重复注解,并且呢,这个方法也是人家给我们提供的新方法,Get bytime是不是直接返回一个Y推的数组啊对吧,我们直接就可以遍历获取注解的一些值。
08:41
你就可以对这个值做一些应用。对吧,对吧,就意味着比如说你们有一些什么联合组建,要定义了什么的,你是不是都可以用这个了,对吧,就可以用这个了,甚至呢,还有一个叫做类型注解了,类型注解是什么意思呢?比如说现在呀,我在这个,这是不是有target的目标啊,有tell field method是这几个呀,除了这几个,他又多了一个什么呢?多了一个叫做嗯。
09:11
叫做,比如说这样吧,叫做element type点是吧,Tap点叫做。参数tap perter什么类型参数啊,对吧,Tap per peretter哎不行,找包是不是有了tap perter,他为什么为什么给我报错。Tap perter,他没给我倒包是吧,然后呢,删掉。这是不是搞定了对吧,搞定搞定了以后呢,过来我就可以用它修饰什么了呢,你比如说我这里有个参数string string s tr对吧,你就可以来个at my,看到了吗。
10:05
这里来个ABC啥的,看到没?它是不是可以注解类型的呀,对吧,它可以注解类型对吧,任意类型,包括放行类型啊,数组类型啊等等等等等。对吧,说那这个有什么用呢?对吧,这个呢,通常我们可以,比如说以后呢,我们可以有这个东西,比如说我们搞一个OOB接吧,是我们创建个对象啊,那这个时候呢,比如说这个类型,你是不是也是为了防止控制帧异常啥的呀,比如说它要是等于no对吧,那么这个时候呢,你就可以来个at no nano对吧,给它注解一下,但是注意现在呢,我们说Java巴还没有内置这些东西,没有内置需要呢,我们去配合其他的框架去使用,听懂吧,就是现在没有内置,那比如说我要用它注解了这个这个变量,这个这个变量的话,那这个变量的值就不能为no,如果为no,它会报变译时检查,对吧,是不是会报变异时错误啊,变译就就就不过。
11:14
是懂吧,对吧,那当然这个呢,现在呢,JAVA8还没有内置这些租金,对吧,估计以后会有啊,那么现在我们说,那你要想用,你可以怎么样呢?你可以配以配合,比如说checker a framework这样的框架,这个框架去使用,它就允许这个东西发生,对吧,就给你提供了,说白了就给你提供个编译器,你用了这个注解,那么这样的注解它就给你提供个编译值检查,如果你负了,对这个对象负了一个空值,它就会给你报错。听明啥意思吗?对吧,你就可以应用到这个,把这个注解应用到数据类型上,那这就是重复注解和类型注解,这个了解一下就可以了啊了解一下,那么到这的话,整个三角方是不是完事了呀,对吧F。
我来说两句