学习目标:初步了解Java注解的用法
- 初步接触java中的注解相关知识与用法
学习内容:
- 注解的作用与格式
- 注解的类型及实现
学习时间:
20分钟
学习产出:
1、注解的作用与格式
① 注解可以对程序进行解释,比如@Override表示对方法进行重写
② 注解可以对函数进行约束和检查
2、注解的类型及实现
① 内置注解
public class AnnotationDemo extends Object {
// @Override 重写操作的注解
@Override
public String toString() {
return super.toString();
}
// 废弃注解
@Deprecated
public static void test() {
System.out.println("这是一个废弃的函数");
}
// 警告注解
@SuppressWarnings("all")
public void test2() {
List list = new ArrayList<>();
}
public static void main(String[] args) {
test();
}
}
② 元注解
public class AnnotationDemo extends Object {
@MyAnnotation
public void test() {
}
}
// 元注解
// Target表示注解可以用在哪些地方,比如ElementType.METHOD为函数
@Target(value = ElementType.METHOD)
// Retention表示我们的注解在什么地方还有效 runtime(运行时) > class(类) > source(源码)
@Retention(value = RetentionPolicy.RUNTIME)
@interface MyAnnotation {
}
③ 自定义注解
public class AnnotationDemo extends Object {
@MyAnnotationPlus(name = "Liu", schools = {"清华大学", "北京大学"})
public void test() {
}
}
/**
* @author 自定义注解
*/
@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@interface MyAnnotationPlus {
// 注解的参数: 参数类型 + 参数名 + () + [default] [value];
// 如果只有一个参数,一般参数名为value
// String value();
String name() default "";
int age() default 0;
int id() default -1; // 如果默认值为-1代表不存在
String[] schools();
}