1.1 简介
- 注解Annotation,也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与 类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对 这些元素进行说明,注释。
- *与注释comment的区别:
A.注释用于对代码进行解释说明 主要是提供给程序员查看 注解可被其他程序读取
B.注解用于对代码进行解释说明 主要用于给jvm来识别
1.2 内置注解
@Override重写
@Deprecated不推荐使用,可用于修饰方法,属性,类,(
多一条删除线)@SuppressWarings警告抑制
1.3 元注解
用于注释其他注解
- @Target:用于描述注解的使用范围,表示我们的注解可以用在哪些地方;
- @Retention:指示注释类型的注释要保留多久。表示我们的注解在什么级别有效,用于描述注解的生命周期(SOURCE<CLASS<RUNTIME)
- @Documented:文档化。表示是否将我们的注解生成在javadoc中
- @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() {
}
}
标签:default,public,注释,参数,注解,ElementType,Annotation
From: https://www.cnblogs.com/wyzel/p/16836967.html