跟王老師學註解(四):自定義註解

跟王老師學註解(四):自定義註解

主講教師:王少華   QQ羣號:483773664

到此,咱們已經學習完了JDK提供的3種內建註解及4種元註解,下面來了解自定義註解
java

1、註解類型

(一)註解類型與接口:註解類型是一種接口,但它又不一樣於接口

一、註解類型使用關鍵字@interface而不是interfaceapp

1
2
public @interface TestAno {
}

@interface隱含繼承java.lang.annotation.Annotation接口ide

二、註解類型的方法定義是獨特的、受限制的
學習

1
String name() default "Jack";

方法必須聲明爲無參數,無異常拋出spa

方法名就是成員變量名,方法的返回值就是成員變量的類型code

方法的後面能夠使用default關鍵字,後面跟一個默認值繼承

(二)、註解類型與接口的類似之處

均可以定義常量、靜態成員的類型。註解類型也能夠像接口同樣被現實或被繼承接口

2、自定義註解類型

(一)、定義

1
2
3
4
5
6
7
8

@Target({ElementType.TYPE, ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER, ElementType.CONSTRUCTOR, ElementType.LOCAL_VARIABLE})ci


@Retention (RetentionPolicy.RUNTIME)
public @interface AnnotationTest{
     //定義兩個成員變量name和age
     //用default關鍵字爲兩個成員變量賦初始值
     String name() default "Jack" ;
     int age() default 20 ;
}

(二)、使用

一、使用定義了成員變量的註解時,要爲成員變量賦值

1
2
3
4
5
6
public class TestAnnotation {
     @AnnotationTest (name= "wangsh" ,age= 21 )
     public void info(){
         
     }
}

二、若是註解類型的成員變量被指定了初始值,則在使用該註解時不對成員變量賦值也能夠

1
2
3
4
5
6
public class TestAnnotation {
     @AnnotationTest
     public void info(){
         
     }
}

三、若是註解類型在定義時沒有指定默認值,而在使用時又沒有指定值,則會在編譯時報錯

四、若是註解類型在定義時指定了默認值,而在使用時又指定了值,則默認值會指定值代替。

3、問題來了

咱們自定義的註解,在開發過程當中有什麼用呢???!!!這是咱們下一節要講解的內容
開發






相關文章
相關標籤/搜索