注解Annotation

1.1 简介

  • 注解Annotation,也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与 类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对 这些元素进行说明,注释。
  • *与注释comment的区别:
    A.注释用于对代码进行解释说明 主要是提供给程序员查看 注解可被其他程序读取
    B.注解用于对代码进行解释说明 主要用于给jvm来识别

1.2 内置注解

@Override重写

@Deprecated不推荐使用,可用于修饰方法,属性,类,(多一条删除线)

@SuppressWarings警告抑制

1.3 元注解

用于注释其他注解

  1. @Target:用于描述注解的使用范围,表示我们的注解可以用在哪些地方;
  2. @Retention:指示注释类型的注释要保留多久。表示我们的注解在什么级别有效,用于描述注解的生命周期(SOURCE<CLASS<RUNTIME
  3. @Documented:文档化。表示是否将我们的注解生成在javadoc中
  4. @Inherited:说明子类可以继承父类中的该注解

1.4 自定义注解@Interface

package com.xxx.forenoon;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target({ElementType.TYPE, ElementType.METHOD})//可作用在类上,方法上
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation2 {
    //注解参数格式:参数类型 参数名();
    String name() default "";//如果加上默认值default ”“,就可以不用写参数名
    int age() default 18;
    int id() default -1;//默认值为-1时,代表不存在

    String[] schools() default {"西华大学","华北电力大学"};
}

@Target({ElementType.TYPE,ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@interface MyAnnotation3 {//只能由一个public修饰的注解
    //如果制作一个注解参数,建议写成value
    String value();
}
package com.xxx.forenoon;

public class Test03 {
    //自定义注解
    //如果注解没有默认值,就必须赋值
    @MyAnnotation2(name = "参数名")
    public void test1(){
        
    }

    @MyAnnotation3("当参数名是value时,可以省略不写value = ")
    public void test2() {

    }
}

posted @ 2022-10-28 18:00  Rix里克斯  阅读(26)  评论(0)    收藏  举报