這期內容當中小編將會給大家?guī)碛嘘Pjava中不同注解的作用,以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
成都創(chuàng)新互聯(lián)秉承實現(xiàn)全網(wǎng)價值營銷的理念,以專業(yè)定制企業(yè)官網(wǎng),網(wǎng)站設計、成都做網(wǎng)站,小程序制作,網(wǎng)頁設計制作,移動網(wǎng)站建設,營銷型網(wǎng)站幫助傳統(tǒng)企業(yè)實現(xiàn)“互聯(lián)網(wǎng)+”轉型升級專業(yè)定制企業(yè)官網(wǎng),公司注重人才、技術和管理,匯聚了一批優(yōu)秀的互聯(lián)網(wǎng)技術人才,對客戶都以感恩的心態(tài)奉獻自己的專業(yè)和所長。從 Java 5 版本之后可以在源代碼中嵌入一些補充信息,這種補充信息稱為注解(Annotation),是 Java 平臺中非常重要的一部分。注解都是 @ 符號開頭的,例如我們在學習方法重寫時使用過的 @Override 注解。同 Class 和 Interface 一樣,注解也屬于一種類型。
1、元注解
1.1 @Target
【作用】
用于指定所標注的注解可以使用的位置,例如:@Target(ElementType.METHOD)
:表示可以使用在方法上,其他結構不能使用;@Target({ElementType.METHOD, ElementType.TYPE})
:表示可以使用在方法和接口、類、枚舉上。
1.2 @Retention
【作用】
用于指定所標注的注解保留階段,該注解共有三個值:
@Retention(RetentionPolicy.SOURCE)
:表示保留到源代碼階段,編譯后消失
@Retention(RetentionPolicy.CLASS)
:表示保留到編譯階段,運行后消失
@Retention(RetentionPolicy.RUNTIME)
:表示保留到運行階段,若要通過反射讀取注解信息,需要指定該注解保留階段為 RUNTIME
1.3 @Inherited
【作用】
表明這個注解是否可以被子類繼承。
1.4 @Documented
【作用】
表明這個注解是否可以被 Javadoc 讀取到文檔中。
2、注解聲明
【格式】
【元注解】
【修飾符】 @interface 注解名 { 注解體 }
【例子】
@Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public @interface MyAnnotation { }
3、配置參數(shù)聲明
【格式】
【數(shù)據(jù)類型】 參數(shù)名() default 默認值;
default 默認值:在需要設置默認值時,可以添加,需要設置時,不用寫;
數(shù)據(jù)類型只能是:基本數(shù)據(jù)類型、String、Class、enum、Annotation,及以上所有類型的一維數(shù)組。
如果參數(shù)成員只有一個或使用頻率較高的參數(shù)可以定義參數(shù)名為:value,在使用注解時,若參數(shù)名為 value 可以省略,直接寫輸入的值。
【例子】
@Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public @interface MyAnnotation { String name() default ""; }
4、讀取注解信息
只有注解標注 @Retention(RetentionPolicy.RUNTIME)
才能通過反射讀取。
讀取注解信息通過反射讀取,具體如下:
import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; public class TestInterface { public static void main(String[] args) { MyAnnotation myAnnotation = MyClass.class.getAnnotation(MyAnnotation.class); String value = myAnnotation.value(); System.out.println(value); } } @MyAnnotation class MyClass {} @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @interface MyAnnotation { String value() default "我是一個注解"; }
上述就是小編為大家分享的java中不同注解的作用了,如果您也有類似的疑惑,不妨參照上述方法進行嘗試。如果想了解更多相關內容,請關注創(chuàng)新互聯(lián)成都網(wǎng)站設計公司行業(yè)資訊。
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。