java注解

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;//默认值为0
    int num() default -1;//代表不存在     indexof:如果不存在就返回-1
}

posted @   阿落小世界  阅读(264)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)
点击右上角即可分享
微信分享提示