激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - Java注解詳細介紹

Java注解詳細介紹

2019-11-28 14:24junjie JAVA教程

這篇文章主要介紹了Java注解詳細介紹,本文講解了Java注解是什么、Java注解基礎知識、Java注解類型、定義Java注解類型的注意事項等內容,需要的朋友可以參考下

Java注解介紹

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

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

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

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

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

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

Java注解基礎知識

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

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

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

 

復制代碼代碼如下:

public @interface MyAnnotation {
   String doSomething();
}

 

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

 

復制代碼代碼如下:

@MyAnnotation (doSomething="What to do")
public void mymethod() {
   ....
}

 

Java注解類型(Annotation Types)

有三種類型的注解:

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

定義:

 

復制代碼代碼如下:

// 這種注解,就像一種標簽, 沒有狀態
// 有點像沒有方法定義的接口Serializable一樣
public @interface AMarkerAnnotation {
}

 

使用:

復制代碼代碼如下:

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

 

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

定義:

復制代碼代碼如下:

public @interface SingleElementAnnotation
{
    String doSomething();
}

 

使用:

復制代碼代碼如下:

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

 

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

定義:

復制代碼代碼如下:

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

 

使用:

復制代碼代碼如下:

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

 

定義Java注解類型的注意事項

在定義注解類型時需要注意:

1.注解聲明應該以一個at符號開始(@),后跟一個interface 關鍵字,以及注解的名字.
2.注解里面的方法聲明,不接受任何參數(只是看起來像是方法而已,本質是屬性域).
3.注解里面的方法聲明不能有throws 子句.
4.注解里面的方法返回類型只能是下面這幾種:
@primitives(6種原始數據類型,int,byte等)
@String(字符串)
@Class(類, 如 String.class 這種)
@enum(枚舉)
@array of the above types(數組,數組元素只能是上面的一種類型)

Java注解類型

JDK5中有兩種類型的注解:

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: av免费在线播放 | 欧美亚洲国产日韩 | 91在线视频免费观看 | 视频一区二区中文字幕 | 国产69精品99久久久久久宅男 | 狠狠干五月 | 久草热久| 国产精品99久久99久久久二 | 国产精品成年片在线观看, 激情小说另类 | 成人免费观看av | 久久中文字幕在线观看 | 一区二区高清视频在线观看 | 中文字幕观看 | 一级黄色在线免费观看 | 午夜精品毛片 | 欧洲精品久久久 | 看av网址| 久久99精品久久久久久国产越南 | 国产1区在线观看 | 久久久免费观看完整版 | 国产亚洲精品久久久久婷婷瑜伽 | 久久久无码精品亚洲日韩按摩 | 国产99久久 | 国产精品刺激对白麻豆99 | 在线观看视频日本 | 久久福利剧场 | av在线免费播放网站 | 国产成人aⅴ | 国产羞羞视频 | 免费播放欧美毛片 | 午夜国产精品成人 | 精品一区二区三区日本 | 国产福利视频 | 国产成人在线网站 | 欧美一区二区黄 | 91精品国产九九九久久久亚洲 | 久久精品av| 天天舔天天插 | 日韩一级免费 | 中国fx性欧美xxxx | 久久久久亚洲a |