注解的分類:
源碼注解
編譯時注解 JDK的@Override
運行時注解 Spring的@Autowired
自定義注解的語法要求
① 使用@interface關鍵字定義注解
② 成員以無參無異常方式執行
③ 可以用defaut為成員指定一個默認值
④ 成員類型是受限的包括原始類型,及String Class Annotation Enumberation
⑤ 如果注解只有一個成員,則成員名必須取名為value(),在使用時可以忽略成員名和賦值號(=)
⑥ 注解類可以沒有成員,稱為標識注解
package com.tsh.ano;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import 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(){
}
}
元注解:注解的注解
使用自定義注解
解析注解