最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Java 注解詳細(xì)介紹

2023-08-07 16:21 作者:wx19970108018  | 我要投稿

Java 注解詳細(xì)介紹

基于注解(Annotation-based)的Java開發(fā)無疑是最新的開發(fā)趨勢.[譯者注: 這是05年的文章,在2014年,毫無疑問,多人合作的開發(fā),使用注解變成很好的合作方式,相互之間的影響和耦合可以很低].

基于注解的開發(fā)將Java開發(fā)人員從繁瑣笨重的配置文件中解脫出來. Java 5.0中首次引入了注解,注解是這個(gè)JDK版本的特性之一,將程序員書寫Java示例API文件的工作轉(zhuǎn)交給了編譯器. 當(dāng)不再維護(hù)分開的源代碼和API文檔后,代碼和文檔會更容易維護(hù). 生成的代碼示例也不太可能包含錯(cuò)誤.

Java注解是JDK 5中的主要特性之一,使開發(fā)變得更簡單容易. 注解就像一種元信息(meta,可以理解為額外的信息,用來給特殊的程序看的),可以添加到代碼中,可以被用到包(package)的聲明,類型(type)聲明、構(gòu)造函數(shù)(constructors)、方法(methods)、屬性域(fields)、參數(shù)(parameters)以及變量(variables)上. 他們提供一種有效的方式來指示方法是否依賴于其他方法,是否完整,類(class)是否引用其他類,等等.

引用 甲骨文公司的官方網(wǎng)站的說明 ,"它(基于注解的開發(fā))可以讓我們在很多時(shí)候不必再去寫一份單獨(dú)的API文檔說明,只需要啟用工具來從源碼中的注解生成即可. 這形成了一種聲明式的編程風(fēng)格,程序員說,需要做什么,就讓工具根據(jù)代碼來做就好了."

簡單來說,注解是一種將meta標(biāo)記(meta-tag)與程序元素關(guān)聯(lián)的機(jī)制,允許編譯器(compiler)或JVM從有注解的元素提取程序行為,必要時(shí)生成相互依賴的代碼.

在本系列文章的第一部分,我將介紹一些基本的Java注解,他們的用處(benefits),以及一些示例用法(usages).

Java注解基礎(chǔ)知識

你需要了解兩個(gè)地方. 一是"注解"(annotation, 類似于一個(gè) new出來的對象)本身,二是"注解的類型"(annotation type, 類似于 class定義). 注解是一個(gè)meta標(biāo)記,用在你的代碼中,其實(shí)它是有生命周期和適用范圍的. annotation type是用來定義注解的. 當(dāng)你想要?jiǎng)?chuàng)建自己的注解時(shí),你就會用到它. type才是實(shí)際使用的構(gòu)造類型,注解只是那個(gè)類型的一個(gè)具體用法.

定義注解類型時(shí)需要使用一個(gè)"at"(@,國內(nèi)有人讀作圈a)標(biāo)記,緊跟著是關(guān)鍵字 interface, 再加上注解的名字(name). 另一方面,使用注解的形式,也是先寫上"at"符號(@),其次是注解類型. 這是最簡單的注解形式. 另外,你可以在使用注解時(shí),在名http://字后面加上小括號,里面附上需要傳遞的參數(shù). 后面你會看到他們的示例:

定義注解類型示例: (Annotation Type,注解類型, 類似于定義一個(gè)類)

復(fù)制代碼 代碼如下:

public @interface MyAnnotation {

?? String doSomething();

}

在普通代碼中使用注解(Annotation實(shí)例)

復(fù)制代碼 代碼如下:

@MyAnnotation (doSomething="What to do")

public void mymethod() {

?? ....

}

Java注解類型(Annotation Types)

有三種類型的注解:

標(biāo)記(Marker): 標(biāo)記類型的注解沒有元素,只有一個(gè)名字.

定義:

復(fù)制代碼 代碼如下:

// 這種注解,就像一種標(biāo)簽, 沒有狀態(tài)

// 有點(diǎn)像沒有方法定義的接口Serializable一樣

public @interface AMarkerAnnotation {

}

使用:

復(fù)制代碼 代碼如下:

@AMarkerAnnotation

public void mymethod() {

?? ....

}

單個(gè)元素的注解: 單個(gè)元素(Single-Element)或單個(gè)值 這種類型的注解,只帶一個(gè)數(shù)據(jù). 可以在括號內(nèi)用 data=value 的方式表示,也可以只傳遞一個(gè)值(簡便的寫法).

定義:

復(fù)制代碼 代碼如下:

public @interface SingleElementAnnotation

{

??? String doSomething();

}

使用:

復(fù)制代碼 代碼如下:

@SingleElementAnnotation ("可以只傳對應(yīng)類型的值")

public void mymethod() {

?? ....

}

Full-value或多個(gè)值的注解: Full-valhttp://ue類型的注解有多個(gè)數(shù)據(jù)成員. 因此,必須為每個(gè)成員使用完整的 data=value 語法格式傳遞參數(shù).

定義:

復(fù)制代碼 代碼如下:

public @interface FullValueAnnotation {

?? String doSomething();

?? int count;

?? String date();

}

使用:

復(fù)制代碼 代碼如下:

@FullValueAnnotation (doSomething="參數(shù)值", count=1,

???????????&nbUexoNokekwsp;?? date="09-09-2005")

public void mymethod() {

?? ....

}

定義Java注解類型的注意事項(xiàng)

在定義注解類型時(shí)需要注意:

1.注解聲明應(yīng)該以一個(gè)at符號開始(@),后跟一個(gè)interface 關(guān)鍵字,以及注解的名字.

2.注解里面的方法聲明,不接受任何參數(shù)(只是看起來像是方法而已,本質(zhì)是屬性域).

3.注解里面的方法聲明不能有throws 子句.

4.注解里面的方法返回類型只能是下面這幾種:

@primitives(6種原始數(shù)據(jù)類型,int,byte等)

@String(字符串)

@Class(類, 如 String.class 這種)

@enum(枚舉)

@array of the above types(數(shù)組,數(shù)組元素只能是上面的一種類型)

Java注解類型

JDK5中有兩種類型的注解:

1.Simple annotations(簡單注解類型): 這些是 Tiger(Tiger是JDK1.5的代號?)提供的基本類型,只能用來注解普通代碼;不能用來創(chuàng)建另一個(gè)自定義注解類型.

2.Meta annotations(元注解): 專門設(shè)計(jì)用來注解其他注解類型(annotation-type)聲明的. 簡單地說,他們被稱為注解的注解(annotations-of-annotations).

Java 注解詳細(xì)介紹的評論 (共 條)

分享到微博請遵守國家法律
延吉市| 彭阳县| 孝昌县| 大同市| 天祝| 马公市| 金阳县| 通辽市| 安远县| 嘉定区| 习水县| 新和县| 西和县| 太康县| 阿克苏市| 苗栗县| 谷城县| 交城县| 建平县| 仙游县| 九龙城区| 吉水县| 巴里| 新巴尔虎左旗| 长子县| 北辰区| 容城县| 朝阳县| 甘南县| 毕节市| 东方市| 壤塘县| 大庆市| 巩义市| 紫云| 静宁县| 灵台县| 临泉县| 富锦市| 云林县| 偃师市|