00:00
那好了,那么这块呢,咱们对这个原代码进行了剖析啊,现在就是两个,一个是over里边没代码,然后呢,我们地盘kit这里边基本上也是没什么代码,你看就这么一个东西。是吧,有个things啊,自从什么时候开始,你看以前我告诉大家啊,在八八你可以打开八看看。八这个里面应该是什么也没有的。你看现在这个D片KT里边有东西了,你看有一个since,你看从九开始这个这个这个就有了,这个从九开始是不是这个有了,我电脑是不是装了个八,我们看你电脑上装了这个这个八啊,我这个电脑上装的这个Java下的JDK1.8,然后呢,打开这个源码src解压之后。别解压了,别解压了,打开吧,没解压这个啊,那就打开就行了,加va,然后找到浪,找到浪之后呢,找这个叫depricated啊,就这个东西打开我们看一下这个源代码。搭的时候大家看这个deprecated的这个注解大框,就是什么也没有吧。
01:02
是不是?从九开始,这个和这个是不是才有啊。对吧,哎,才有啊,所以说大家看到这个代码上出现这么一个东西。出现出现个啥呀,你看这出现一个deprecated。就从九开始这个故事了。从JDK9开始,这个过时了,就这意思。啊,就这意思,这个方法啊,这还没有过时的啊,没有过时的,现在给它标上去已过时了啊,不建议用了。好了,对咱们的这个注解override和DEEPPLIC2个注解有一定的认识,然后对我们的一个保值性策略,还有这个叫做。哎,Target啊,这个要有一定的一个认识啊。那行吧,那咱们接下来继续往下看吧。那么我们自定义注解,我们应该怎么去用这个注解?各位。
02:00
我们在这儿不是自定义一个注解吗?对吧,那这样吧,我们再定义个注解行吗。再定个啊,我看看我们具体怎么用。因为我们之前定的注解里边好像大块开始大块结束,里边啥也没有啊。对吧,哎,那我们如果说给这个my annotation,或者是给类似的这样的注解,给他干什么呀,给他。东西。那么我们应该怎么去用它,各位啊。我们现在用很简单,就是定一个这样的注解,然后呢,在我们的程序里边就直接用,直接用就行了,你看这样直接用就可以了。是吧,哎,那如果说里边有东西的,我们该怎么用啊。啊,得说说这个吧,是不是来在这我就新建了,各位啊,新建个class啊,新建个package,新建个package吧,Package啊叫annotation an。ATION2注意听啊,ANNOTATION2跟这个包不一样,换包了啊,我在这里还是定义一个class,叫做my annotation,还是这个名字吧,I my an。
03:00
啊,然后选下边这个annotation啊。好,这是一个注解。那么接下来呢,我们来测试一下各位啊。在这个注解当中呢,我有一个什么呢?嗯。给一个什么,我想想啊,给一个string吧,啊,Name。啊,这样写各位啊,这个呢,我们称为注解当中的一个属性,各位有图老师,这不是方法吗?不是。我们把这个叫做属性啊,叫做属性啊,我们通常在注解当中。可以定义什么呀,属性以下这个啊。是my annotation注解的name属性。属性啊。嗯。看着像个方法是不是,哎,看着像个方法啊,就是看着像一个方法啊,看着像一个方法。
04:05
啊,但实际上我们称之为。属性,Name。那这个注解里边有东西了,我们应该怎么用呢?My annotation test。啊。来,那么这块呢,我们,嗯。写一个方法吧,就叫do some方法吧,我们在这个方法上呢,用一下我们这个注解,各位就这个注解。用一下啊,里边有个内部属性。来怎么用啊,艾吧MY吧,哎,你看报错了。是不是哎报错了,为什么呢?哎,因为我们注解当中如果有属性的话,必须给属性指定值。
05:03
注意啊,这报错的原因是什么?解释一下啊报错的原因。如果,如果一个注解当中有属性,那么必须给属性的值。你必须给属性赋值,给属性赋值啊,必须给属性赋值各位啊,所以这个就是报错了。你需要在这个位置加一个小括弧,指定什么属性名等于什么属性值这种语法。各位啊,所以这块你的属性名是什么呢?你的注解的属性名叫做name,所以这个位置写一个name就行了,然后name它是一个字符串string,所以你等号这个属性值也是得带一个双引号啊,比如说张三。嗯。没事啊,你会懂得越来越多,慢慢慢慢你就能看懂了,能看懂啥了,Deri Kitty的这个注解了。
06:06
或者说我们我们刚才刚才那个让大家看了这个class,其实你就能看懂了,慢慢慢慢就能看懂了。就在这,我们不是写了这么一个东西吗?你看这就能看懂了,对吧,慢慢慢慢就能看懂了啊,我现在在这里呢,主要是给大家讲解的是什么呢?就是说我们怎么去自定义这个注解,自定义完之后,我们指定了一个属性叫做name,但是呢,这个看着像方法,但我们叫做属性,各位啊,叫做属性后边得有个小括号。啊,然后呢,我们在用的时候就不能这样用了,我们如果这个注解有属性的话,我们在用的时候就必须给属性指定值。必须指定值,你看指定值就好了,对不对,哎,指定name属性的值就好了,明白什么意思吧,哎,这个可以了。那么现在呢,我在这里啊,再去指定一个属性,假如说这个属性叫color颜色。
07:03
啊,颜色,那么大家想一想,这叫颜色属性,那指定了这个颜色之后,这又报错了,应该是你看。对吧,你还需要在这个位置上再加一个逗号,然后再加一个。你的color颜色是什么值?哎,你的颜色呢,它是一个什么呀?String,那么这个时候呢,我们在指定颜色,比如红色。明白吗?哎,指定红色,那么我可以,我可以在这里呢,再去来一个int类型的age年龄,Age年龄注意听课啊,注意听课,这叫做年龄属性。年龄属性,那么这个年龄属性呢,又报错了,我们必须要在这指定一个年龄属性才行,对吧?加逗号隔开啊,A是年龄属性,比如说25,但是呢,我不想指定这个age了,默认是二十五行不行也可以大家看,可以往那个后边加一个default,默认25。
08:04
那加上一个默认值,这叫默认值,各位啊,这叫属性指定默认值啊,属性。指定默认值啊,当你指定默认值之后,这个地方你就可以不写了。这个可以不写了啊,所以说大家看我加一个deprecated之后,我括号里边这个things我愿意加就加,不愿意加我也可以不加,为什么加也行,不加也行,你点过去看看这个地方有个default,看见没?说你这个DEP里面有一个属性,这个属性叫things。Since这个属性呢,它不是必须的,它有默认值,默认值是空白,什么都不写。这个地方也有什么呀,叫做默认值,默认值是false,所以我们可以直接这样写,没有任何问题,不指定值,你可以在这里不指定值,听明白了吗?可以不指定。为什么?刚才我说的很清楚。原因是。它都有默认值,我们这个也是一样,你看default默认值,给个默认值之后,这个属性就可就不是必须的了。
09:07
啊,如果一个注解当中有属性,那么必须给属性赋值,除非该属性使用default给定的默认值,啊,除非该属性。该属性啊,使用default指定了默认值了解。现在大家知道这个为什么这样这样写了吧。对吧,你看H可以不写,你看为什么可以不写呀。Default啊,为default。自定义注解也可以加圆,当然还没讲到呢,别着急啊,别着急,同学啊,不要着急啊,着急吃不了热豆腐啊。
我来说两句