最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java注解詳細(xì)介紹

 更新時(shí)間:2014年09月19日 09:31:13   投稿:junjie  
這篇文章主要介紹了Java注解詳細(xì)介紹,本文講解了Java注解是什么、Java注解基礎(chǔ)知識(shí)、Java注解類型、定義Java注解類型的注意事項(xiàng)等內(nèi)容,需要的朋友可以參考下

Java注解介紹

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

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

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

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

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

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

Java注解基礎(chǔ)知識(shí)

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

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

定義注解類型示例: (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)記類型的注解沒(méi)有元素,只有一個(gè)名字.

定義:

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

// 這種注解,就像一種標(biāo)簽, 沒(méi)有狀態(tài)
// 有點(diǎn)像沒(méi)有方法定義的接口Serializable一樣
public @interface AMarkerAnnotation {
}

使用:

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

@AMarkerAnnotation
public void mymethod() {
   ....
}

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

定義:

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

public @interface SingleElementAnnotation
{
    String doSomething();
}

使用:

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

@SingleElementAnnotation ("可以只傳對(duì)應(yīng)類型的值")
public void mymethod() {
   ....
}

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

定義:

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

public @interface FullValueAnnotation {
   String doSomething();
   int count;
   String date();
}

使用:

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

@FullValueAnnotation (doSomething="參數(shù)值", count=1,
               date="09-09-2005")
public void mymethod() {
   ....
}

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

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

1.注解聲明應(yīng)該以一個(gè)at符號(hào)開(kāi)始(@),后跟一個(gè)interface 關(guān)鍵字,以及注解的名字.
2.注解里面的方法聲明,不接受任何參數(shù)(只是看起來(lái)像是方法而已,本質(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(簡(jiǎn)單注解類型): 這些是 Tiger(Tiger是JDK1.5的代號(hào)?)提供的基本類型,只能用來(lái)注解普通代碼;不能用來(lái)創(chuàng)建另一個(gè)自定義注解類型.

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

相關(guān)文章

  • springboot后端使用LocalDate接收日期的問(wèn)題解決

    springboot后端使用LocalDate接收日期的問(wèn)題解決

    在做Java開(kāi)發(fā)時(shí),肯定會(huì)碰到傳遞時(shí)間參數(shù)的情況,本文主要介紹了springboot后端使用LocalDate接收日期的問(wèn)題解決,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-09-09
  • 學(xué)習(xí)SpringMVC——國(guó)際化+上傳+下載詳解

    學(xué)習(xí)SpringMVC——國(guó)際化+上傳+下載詳解

    本篇文章主要介紹了學(xué)習(xí)SpringMVC——國(guó)際化+上傳+下載,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。
    2016-12-12
  • Mac下如何查看已安裝的jdk版本及其安裝目錄

    Mac下如何查看已安裝的jdk版本及其安裝目錄

    這篇文章主要介紹了Mac下如何查看已安裝的jdk版本及其安裝目錄問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • Spring boot部署發(fā)布到linux的操作方法

    Spring boot部署發(fā)布到linux的操作方法

    這篇文章主要介紹了Spring boot部署發(fā)布到linux的操作方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-05-05
  • mybatis foreach標(biāo)簽的使用詳解

    mybatis foreach標(biāo)簽的使用詳解

    這篇文章主要介紹了mybatis foreach標(biāo)簽的使用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • Java中的FutureTask用法和原理解析

    Java中的FutureTask用法和原理解析

    本文深入剖析了Java并發(fā)編程中的FutureTask,包括其與Callable和Future的關(guān)系、使用方法以及內(nèi)部實(shí)現(xiàn)原理,FutureTask是Future的基礎(chǔ)實(shí)現(xiàn),用于處理異步計(jì)算結(jié)果,提供了任務(wù)執(zhí)行結(jié)果獲取和任務(wù)取消等方法
    2024-10-10
  • Activiti如何動(dòng)態(tài)獲取流程圖過(guò)程詳解

    Activiti如何動(dòng)態(tài)獲取流程圖過(guò)程詳解

    這篇文章主要介紹了Activiti如何動(dòng)態(tài)獲取流程圖過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • SpringBoot+Redis實(shí)現(xiàn)消息的發(fā)布與訂閱的示例代碼

    SpringBoot+Redis實(shí)現(xiàn)消息的發(fā)布與訂閱的示例代碼

    本文主要介紹了SpringBoot+Redis實(shí)現(xiàn)消息的發(fā)布與訂閱,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • Springboot單體架構(gòu)http請(qǐng)求轉(zhuǎn)換https請(qǐng)求來(lái)支持微信小程序調(diào)用接口

    Springboot單體架構(gòu)http請(qǐng)求轉(zhuǎn)換https請(qǐng)求來(lái)支持微信小程序調(diào)用接口

    這篇文章主要介紹了Springboot單體架構(gòu)http請(qǐng)求轉(zhuǎn)換https請(qǐng)求來(lái)支持微信小程序調(diào)用接口,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • java迭代器和for循環(huán)優(yōu)劣詳解

    java迭代器和for循環(huán)優(yōu)劣詳解

    在本篇文章里小編給大家整理的是一篇關(guān)于java迭代器和for循環(huán)優(yōu)劣詳解內(nèi)容,對(duì)此有興趣的朋友們可以學(xué)習(xí)參考下。
    2021-01-01

最新評(píng)論

夏河县| 富源县| 宜兴市| 永州市| 温宿县| 阿巴嘎旗| 阳新县| 临邑县| 利津县| 海安县| 中山市| 高唐县| 白河县| 上栗县| 敦煌市| 麻阳| 阜新市| 乌兰县| 文山县| 武汉市| 玛多县| 弋阳县| 苗栗市| 泸西县| 佛学| 万山特区| 惠东县| 白银市| 大厂| 德州市| 冷水江市| 锦州市| 上高县| 西盟| 五寨县| 神池县| 合肥市| 乐东| 贡山| 邯郸市| 广宗县|