元註解的作用是解釋註解其他註解,java定義瞭4個標準的metaannotation類型,它們被用作對其他的annotation類型說明。元註解分類如下:
- @Target:用於描述註解的使用范圍
- @Retention:表示需要在什麼級別保存註解信息,用於描述註解的聲明周期,其中SOURCE<CLASS<RUNTIME
- @Document:說明該註解將包含在javadoc中
- @Inherited:說明子類可以繼承父類中的該註解
自定義註解,使用元註解修飾,【AnnotationTest.java】
package day15;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@interface AnnotationTest {
}
class Test01 {
//註解可以顯示賦值,如果沒有默認值就必須給註解賦值
@AnnotationTest1(name = "huahua", sclass = {})
public void Test01() {
}
//如果註解隻有一個參數,且為value時可以省略參數名,其他參數名不可以省略
@AnnotationTest2("")
public void test02() { //一個類中方法不能有多個public修飾
}
}
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@interface AnnotationTest1 {
//註解的參數,類型+參數名()[default 默認值]
String name() default "";
int age() default 0;
int id() default -1;
String[] sclass();
}
/*註解的使用范圍有:TYPE、FIELD、METHOD、PARAMETER、CONSTRUCTOR、LOCAL_VARIABLE、
ANNOTATION_TYPE、PACKAGE、TYPE_PARAMETER、TYPE_USE
*/
@Target({ElementType.METHOD, ElementType.TYPE})
//註解的聲明周期有:SOURCE、CLASS、RUNTIME
@Retention(RetentionPolicy.RUNTIME)
@interface AnnotationTest2 {
//註解的參數,類型+參數名()[default 默認值]
String[] value();
}
-
扫码下载安卓APP
-
微信扫一扫关注我们微信扫一扫打开小程序手Q扫一扫打开小程序
-
返回顶部