注解的分類:
源碼注解
編譯時注解 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(){ } }
元注解:注解的注解
使用自定義注解
解析注解