java高级之注解

1.预定义注解

@Override: 当方法使用该注解时,表示该方法是一个重写的方法,那么该方法必须符合重写的规则

【子类重写的方法名必须和父类的方法名一致,参数也要一致,返回值也要一致 访问修饰不能小于父类的<public protected 默认 private> 抛出的异常不能大于父类】。

@Deprecated: 标记该方法已经过时。JVM

@FuncationInterface: 函数式接口.---要求接口钟有且仅有一个抽象方法

2.自定义注解

首先你得创建一个注解类

就像这样

然后就变成这样

然后就可以用了,只不过是无意义的注解

注解会用吧,spring里那些注解会用吧

那些怎么用这个就怎么用

直接调,直接@MyZhJE就完事,这个时候你自定义的注解在哪都可以用,什么类上、方法上、参数上、属性上都可都可(就像@AutoWired一样)

3.元注解

【一句话理解:就是加在注解上注解】

怎么用?

看我

元注解有其三

及其一:

@Retention: 限制注解什么时候生效。【源码-------字节码----运行】

                   【SOURCE, CLASS, RUNTIME】

这样用就对了

及其二:

@Target: 该注解可以使用在哪些地方

 //使用在类上
 TYPE,

 //使用在属性上
 FIELD,

 //使用在方法上
 METHOD,

 //使用在参数
 PARAMETER,

 //使用在构造方法上
 CONSTRUCTOR

及其三:

@Documented: 在生成api文档是是否含有该注解。

无法解释,不过

大概

可能

都不会用到,作为了解就好

加上这个注解后点击那个粉红色框框那个就可以生成javaDocApi文档

4.自定义注解(属性)

解释:

@GetMaping(value="/info") 这里的value它就是注解钟的属性。

语法:

public @interface 注解名{

数据类型 属性名() default 默认值;

//如果没有设置默认值,那么在使用该注解时必须为该属性指定值。

}

好了,这里搞三个属性:

然后你会发现你之前自定义的注解写在别的地方报红线了

这个时候就要依次填写你自己搞的三个属性了:

 //给定的数组值只有一个那么可以省略{},如果数组值有多个必须给定{}.

当然,你也可以加一个默认值,就像这样:

当然,如果只有一个值需要添写,那么value可以省略不写

以上就是注解的知识内容,如有漏缺,请在下方评论区留言,我会及时补充!

 

posted @ 2023-08-10 09:33  九极致之术  阅读(58)  评论(0编辑  收藏  举报