本章概述:本章主要讲了注解的作用,注解的原理,内置注解,元注解,以及自定义注解在实际Java开发中的用处。
目录
本章概述:
一、AnnotationDemo
package AnnotationDemo;
import java.util.Date;
public class AnnotationDemo {
private int num;
@Override //注解检验作用
public String toString() {
return "AnnotationDemo{" +
"num=" + num +
'}';
}
/**
*声明参数文档注释
*
* @param num1 第一个数
* @param num2 第二个数
* @return 两个数相加的数
*/
// @SuppressWarnings("all") 忽略所有注解
public int add(int num1,int num2){
return num1+num2;
}
@Deprecated //过时的
public void test(){
System.out.println("test");
}
public static void main(String[] args) {
AnnotationDemo ad = new AnnotationDemo();
ad.test();
Date date = new Date();
System.out.println(date.getYear()); //过时的
}
}
二、FunctionInterfaceDemo
package AnnotationDemo;
@FunctionalInterface
/*
函数式编程注解
里面只能存储一个
*/
public interface FunctionInterfaceDemo {
void sub(int a,int b);
// void sub1(int a,int b);
}
三、MetaAnnotation
package AnnotationDemo;
import java.lang.annotation.*;
public class MetaAnnotation {
public static void main(String[] args) {
}
public static void print() {
System.out.println("print。。。。");
}
}
//自定义注解
//target是说明自定义注解在什么位置可以使用,包、类、方法、属性等等
@Target({ElementType.METHOD, ElementType.TYPE})
//retention说明当前注解可以适用的环境,或者说什么级别保存注释信息,有三个级别,源码级别SOURCE、类级别CLASS,运行时环境RUNTIME,默认一般是RUNTIME级别
@Retention(RetentionPolicy.RUNTIME)
//说明注解是否可以显示在javadoc中
@Documented
//说明当前注解是否能被继承
@Inherited
@interface MyAnnotation {
}
文章评论