首頁 > Java > Java入門 > java基礎之註解

java基礎之註解

王林
發布: 2019-11-27 16:51:11
轉載
2490 人瀏覽過

java基礎之註解

1、元註解

1.1 @Target

【作用】

用於指定標註的註解可以使用的位置,例如:@Target(ElementType.METHOD):表示可以使用在方法上,其他結構不能使用;@Target({ElementType .METHOD, ElementType.TYPE}):表示可以使用在方法和介面、類別、枚舉上。

相關線上影片教學:java課程

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基礎之註解

##相關文章教學推薦:

java入門學習

以上是java基礎之註解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:csdn.net
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板