這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)java中不同注解的作用,以專(zhuān)業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
創(chuàng)新互聯(lián)建站是專(zhuān)業(yè)的農(nóng)安網(wǎng)站建設(shè)公司,農(nóng)安接單;提供做網(wǎng)站、網(wǎng)站設(shè)計(jì),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專(zhuān)業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行農(nóng)安網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專(zhuān)業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專(zhuān)業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!
從 Java 5 版本之后可以在源代碼中嵌入一些補(bǔ)充信息,這種補(bǔ)充信息稱(chēng)為注解(Annotation),是 Java 平臺(tái)中非常重要的一部分。注解都是 @ 符號(hào)開(kāi)頭的,例如我們?cè)趯W(xué)習(xí)方法重寫(xiě)時(shí)使用過(guò)的 @Override 注解。同 Class 和 Interface 一樣,注解也屬于一種類(lèi)型。
1、元注解
1.1 @Target
【作用】
用于指定所標(biāo)注的注解可以使用的位置,例如:@Target(ElementType.METHOD)
:表示可以使用在方法上,其他結(jié)構(gòu)不能使用;@Target({ElementType.METHOD, ElementType.TYPE})
:表示可以使用在方法和接口、類(lèi)、枚舉上。
1.2 @Retention
【作用】
用于指定所標(biāo)注的注解保留階段,該注解共有三個(gè)值:
@Retention(RetentionPolicy.SOURCE)
:表示保留到源代碼階段,編譯后消失
@Retention(RetentionPolicy.CLASS)
:表示保留到編譯階段,運(yùn)行后消失
@Retention(RetentionPolicy.RUNTIME)
:表示保留到運(yùn)行階段,若要通過(guò)反射讀取注解信息,需要指定該注解保留階段為 RUNTIME
1.3 @Inherited
【作用】
表明這個(gè)注解是否可以被子類(lèi)繼承。
1.4 @Documented
【作用】
表明這個(gè)注解是否可以被 Javadoc 讀取到文檔中。
2、注解聲明
【格式】
【元注解】
【修飾符】 @interface 注解名 { 注解體 }
【例子】
@Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public @interface MyAnnotation { }
3、配置參數(shù)聲明
【格式】
【數(shù)據(jù)類(lèi)型】 參數(shù)名() default 默認(rèn)值;
default 默認(rèn)值:在需要設(shè)置默認(rèn)值時(shí),可以添加,需要設(shè)置時(shí),不用寫(xiě);
數(shù)據(jù)類(lèi)型只能是:基本數(shù)據(jù)類(lèi)型、String、Class、enum、Annotation,及以上所有類(lèi)型的一維數(shù)組。
如果參數(shù)成員只有一個(gè)或使用頻率較高的參數(shù)可以定義參數(shù)名為:value,在使用注解時(shí),若參數(shù)名為 value 可以省略,直接寫(xiě)輸入的值。
【例子】
@Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public @interface MyAnnotation { String name() default ""; }
4、讀取注解信息
只有注解標(biāo)注 @Retention(RetentionPolicy.RUNTIME)
才能通過(guò)反射讀取。
讀取注解信息通過(guò)反射讀取,具體如下:
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 "我是一個(gè)注解"; }
上述就是小編為大家分享的java中不同注解的作用了,如果您也有類(lèi)似的疑惑,不妨參照上述方法進(jìn)行嘗試。如果想了解更多相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊。
網(wǎng)站題目:java中不同注解的作用
瀏覽路徑:http://www.chinadenli.net/article42/jigsec.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、企業(yè)網(wǎng)站制作、軟件開(kāi)發(fā)、定制開(kāi)發(fā)、域名注冊(cè)、響應(yīng)式網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)