1、注解的作用
注解是对某段程序进行标注与解释,是为了让程序理解这是什么,并进行代码的审查。
2、注解与注释的区别
顾名思义,注解与注释都是对程序的解释与说明,但是注解是为了方便程序知道这是什么,而注释是为了让程序员知道这是什么,也方便后期的代码维护。
3、java中常见注解
@Override:这是最常见的注解了,放在方法上说明这是被重写的方法。
@FunctionalInterface:说明这是一个函数式接口。进入Runnable源码就会发现有他
@interface:说明这是一个注解,随便进入一个注解的源码,它都在。大家可以尝试一下。
元注解(meta-annotation):用来修饰注解的注解
@Documented:会被Javadoc提取成文档
@Retention(RetentionPolicy.):指明被保留到何时,编译时还是运行时
RetentionPolicy:也是一个枚举型,它的成员有
> SOURCE,表示被编译后就丢弃
> CLASS,生成class文件后就丢弃
> RUNTIME,可以一直保留到在虚拟机上运行
@Target(ElementType.):规定作用域,比如有的类只能用在方法上
ElementType:这是一个枚举型,它的取值有
> TYPE,表示可以用在类、接口、枚举上
> FIELD,表示可以用在字段上
> METHOD,表示可以用在方法上
> PARAMETER,表示可以用在参数上
> CONSTRUCTOR,表示可以用在构造器上
> LOCAL_VARIABLE,表示可以用在局部变量上
> ANNOTATION_TYPE,表示可以用在注解上
> PACKAGE,表示可以用在包上
@Inherited:允许子类继承父类的注解
3、注解的底层原理
定义注解跟定义类一样只是他们用@interface来声明不用class,并且在注解上都会有元注解对注解进行说明,在注解内部也可以注解的参数,参数类型+参数名();
5、java自定义注解
import java.lang.annotation.*;
@myannotation
public class annoTest {
public static void main(String[] args) {
}
@myannotation(name="wq",age=12,num=34)
public void teat(){
}
}
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE,ElementType.METHOD})
@Inherited
@Documented
@interface myannotation{
String name() default "";
int age() default 0;
int num() default -1;
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)