黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

Java面向對象
Java異常
Java數組
Java常用類
Java集合
Java IO流
Java線程
Java反射
Socket編程
Java注解開發
Java GoF設計模式
HashMap
Java內存模型
Java線性表

Java開發自定義注解

自定義注解的語法規則

1、使用@interface關鍵字定義注解,注意關鍵字的位置

使用@interface自定義注解時,自動繼承了java.lang.annotation.Annotation接口,由編譯程序自動完成其他細節。在定義注解時,不能繼承其他的注解或接口。

2、成員以無參數無異常的方式聲明,注意區別一般類成員變量的聲明

其中的每一個方法實際上是聲明了一個配置參數。方法的名稱就是參數的名稱

3、可以使用default為成員指定一個默認值,如上所示

4、成員類型是受限的,合法的類型包括原始類型以及String、Class、Annotation、Enumeration (JAVA的基本數據類型有8種:byte(字節)、short(短整型)、int(整數型)、long(長整型)、float(單精度浮點數類型)、double(雙精度浮點數類型)、char(字符類型)、boolean(布爾類型)

5、注解類可以沒有成員,沒有成員的注解稱為標識注解,例如JDK注解中的@Override、@Deprecation

6、如果注解只有一個成員,并且把成員取名為value(),則在使用時可以忽略成員名和賦值號“=” ,例如JDK注解的@SuppviseWarnings ;如果成員名 不為value,則使用時需指明成員名和賦值號"=",

元注解

何為元注解?就是注解的注解,就是給你自己定義的注解添加注解,你自己定義了一個注解,但你想要你的注解有什么樣的功能,此時就需要用元注解對你的注解進行說明了。Java5.0定義了4個標準的meta-annotation類型,它們被用來提供對其它 annotation類型作說明。

1、@Target

@Target說明了Annotation所修飾的對象范圍:即注解的作用域,用于說明注解的使用范圍(即注解可以用在什么地方,比如類的注解,方法注解,成員變量注解等等)

注意:如果Target元注解沒有出現,那么定義的注解可以應用于程序的任何元素。

取值是在java.lang.annotation.ElementType這個枚舉中規定的:

● CONSTRUCTOR:用于描述構造器

● FIELD:用于描述域

● LOCAL_VARIABLE:用于描述局部變量

● METHOD:用于描述方法

● PACKAGE:用于描述包

● PARAMETER:用于描述參數

● TYPE:用于描述類、接口(包括注解類型) 或enum聲明

實例代碼

2、@Retention

@Retention定義了該Annotation被保留的時間長短:

(1)某些Annotation僅出現在源代碼中,而被編譯器丟棄;

(2)而另一些卻被編譯在class文件中;編譯在class文件中的Annotation可能會被虛擬機忽略,

(3)而另一些在class被裝載時將被讀取(請注意并不影響class的執行,因為Annotation與class在使用上是被分離的)。

使用這個meta-Annotation可以對 Annotation的“生命周期”限制。

@Retention的取值是在RetentionPoicy這個枚舉中規定的

● SOURCE:在源文件中有效(即源文件保留)

● CLASS:在class文件中有效(即class保留)

● RUNTIME:在運行時有效(即運行時保留)

實例代碼如下:

注意:注解的的RetentionPolicy的屬性值是RUTIME,這樣注解處理器可以通過反射,獲取到該注解的屬性值,從而去做一些運行時的邏輯處理。

3、@Documented

@Documented用于描述其它類型的annotation應該被作為被標注的程序成員的公共API,因此可以被例如javadoc此類的工具文檔化。Documented是一個標記注解,沒有成員。

4、@Inherited

@Inherited 元注解是一個標記注解,@Inherited闡述了某個被標注的類型是被繼承的。如果一個使用了@Inherited修飾的annotation類型被用于一個class,則這個annotation將被用于該class的子類。

注意:@Inherited annotation類型是被標注過的class的子類所繼承。類并不從它所實現的接口繼承annotation,方法并不從它所重載的方法繼承annotation。

當@Inherited annotation類型標注的annotation的Retention是RetentionPolicy.RUNTIME,則反射API增強了這種繼 承性。如果我們使用java.lang.reflect去查詢一個@Inherited annotation類型的annotation時,反射代碼檢查將展開工作:檢查class和其父類,直到發現指定的annotation類型被發現, 或者到達類繼承結構的頂層。

● 定義注解1

● 定義注解2

● 定義一個基類

● 定義一個子類

● 通過反射獲取子類中使用的所有的注解

全部教程
主站蜘蛛池模板: 综合网伊人 | 欧美日本综合一区二区三区 | 人人做天天爱夜夜爽中字 | 日韩高清在线日韩大片观看网址 | 国产午夜久久影院 | 成年色黄大色黄大片 视频 成年日韩免费大片黄在线观看 | 欧美性色黄在线视 | a视频免费在线 | 亚洲国产成人久久精品动漫 | 黄在线免费看 | 亚洲视频在线一区二区 | 免费午夜网站 | 午夜视频在线观看国产 | 亚洲欧洲在线视频 | 最近2019年免费中文字幕高清 | www.五月.com | 国产精品视频一区二区三区 | 亚洲免费网站在线观看 | 亚洲欧美日韩在线一区 | 高清中国一级毛片免费 | 91av短视频 | 好吊色妇女免费视频免费 | 精品国语国产在线对白 | 日本欧美一区二区免费视 | 成人网视频 | 日韩成人在线观看视频 | 高清黄色直接看 | 在线高清一级欧美精品 | 国产在线精彩视频 | 日批在线看 | 一级a毛片免费 | 久久极品视频 | 国产精品日日摸夜夜添夜夜添1 | 蜜桃日本一道无卡不码高清 | 亚洲国产中文字幕 | 碰超在线观看 | 国产日韩在线视频 | 伊人久久五月天综合网 | 亚洲黄色网址在线观看 | 成人精品第一区二区三区 | 99九九99九九九视频精品 |