您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關java中不同注解的作用,以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
從 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、配置參數聲明
【格式】
【數據類型】 參數名() default 默認值;
default 默認值:在需要設置默認值時,可以添加,需要設置時,不用寫;
數據類型只能是:基本數據類型、String、Class、enum、Annotation,及以上所有類型的一維數組。
如果參數成員只有一個或使用頻率較高的參數可以定義參數名為:value,在使用注解時,若參數名為 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中不同注解的作用了,如果您也有類似的疑惑,不妨參照上述方法進行嘗試。如果想了解更多相關內容,請關注億速云行業資訊。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。