注解的分类:
源码注解
编译时注解 JDK的@Override
运行时注解 Spring的@Autowired
自定义注解的语法要求
① 使用@interface关键字定义注解
② 成员以无参无异常方式执行
③ 可以用defaut为成员指定一个默认值
④ 成员类型是受限的包括原始类型,及String Class Annotation Enumberation
⑤ 如果注解只有一个成员,则成员名必须取名为value(),在使用时可以忽略成员名和赋值号(=)
⑥ 注解类可以没有成员,称为标识注解
package com.tsh.ano; import java.lang.annotation.Documented; java.lang.annotation.ElementType; java.lang.annotation.Inherited; java.lang.annotation.Retention; java.lang.annotation.RetentionPolicy; java.lang.annotation.Target; //元注解 @Target({ElementType.METHOD,ElementType.TYPE})作用域 @Retention(RetentionPolicy.RUNTIME)生命周期 @Inherited可以被继承 @Documented生成文档 public @interface Description { String desc(); String author(); int age() default 18; } 使用注解 class DescAnoDemo{ @Description(author = "taoshihan",desc = "hahaha") void show(){ } }
元注解:注解的注解
使用自定义注解
解析注解