国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

J2SE1.5注釋語法簡介

2019-11-18 11:10:06
字體:
供稿:網(wǎng)友

說起注解語法,對(duì)于任何一個(gè)java開發(fā)人員來說都已經(jīng)耳熟能詳了,我們天天都在使用著 @author, @param,等等編寫注釋,然后用javadoc生成文檔。Java的這種方便的文檔生成方法受到了開發(fā)者的普遍贊譽(yù)。而從JDK1.5開始,注釋語法提供了更為強(qiáng)大的功能。

我們先談?wù)勛⑨屨Z法本身,它有時(shí)候也稱為meta-data :“描述數(shù)據(jù)的數(shù)據(jù)”。一般來說它們可以被用來生成文檔,檢查代碼間依靠關(guān)系,幫助編譯器作語法檢查。時(shí)下比較流行的工具有Xdoclet等。對(duì)于文檔生成早已經(jīng)有了javadoc工具的完美表現(xiàn),而對(duì)于代碼檢查,如今java也提供了語言級(jí)的支持。

我們知道,javadoc是通過提取java源文件中的標(biāo)簽信息來生成文檔。所以要學(xué)習(xí)新的注釋語法,們首先要熟悉的就是新增的標(biāo)簽。新的注釋語法支持兩種標(biāo)簽,系統(tǒng)標(biāo)準(zhǔn)標(biāo)簽和用戶自定義標(biāo)簽。標(biāo)簽的符號(hào)也原先一樣,@符號(hào)加上標(biāo)簽名字。我們先從JDK1.5自帶的標(biāo)準(zhǔn)標(biāo)簽說起。

首先介紹@override , 也不用多羅嗦,顧名思義了,就是用來說明方法覆載的。我們假設(shè)有一個(gè)子類必須要覆載父類的方法.

================================================================================

public class Parent{

public void foo(){

System.out.
}

}

public class Child extends Parent{

@Override

public void foo(){

System.out.println("Overide Implementation of foo");

}

<}

================================================================================

目前為止我們看不出來這個(gè)@Override給我們帶來了任何好處,所以我們先說說加個(gè)這個(gè)標(biāo)簽后,我們用javac編譯的時(shí)候編譯器執(zhí)行了些什么呢?編譯器會(huì)檢查這個(gè)方法,然后從父類查找是否有這個(gè)方法,否則就編譯出錯(cuò)。這個(gè)特性可以幫助我們避免一些低級(jí)錯(cuò)誤。上面這個(gè)例子,子類想覆載foo()方法,不過你可能一時(shí)疏忽把它寫成了fob(), 對(duì)于這樣的”低級(jí)錯(cuò)誤”,假如你沒有在前期就發(fā)現(xiàn)的話,到系統(tǒng)集成測(cè)試的時(shí)候,可能會(huì)化上你幾個(gè)小時(shí)甚至一兩天去找出這樣的bug。現(xiàn)在好了,編譯器在編譯的時(shí)候就會(huì)給出錯(cuò)誤,

Child.java:3: method does not override a method from its superclass

@Override

^

1 error



這個(gè)功能還不錯(cuò)吧。

看過了標(biāo)準(zhǔn)標(biāo)簽的使用方法,我們來看看用戶自定義標(biāo)簽。首先介紹@interface, 它用于定義新的注釋類型(annotation type)。新建一個(gè)注釋類型看起來和定義一Interface 沒有什么兩樣,MyTag.Java用于新建一個(gè)用戶自定義標(biāo)簽,代碼如下,

===============================================================================

package tiger.annotation;

/**

* 用戶自定義標(biāo)簽??MyTag

*/

public @interface MyTag { }

定義了一個(gè)tag之后,我們就可以在任何java文件中使用這個(gè)tag了,

import tiger.annotation.MyTag;

public class TagTest{

@MyTag

public void testTag(){

}

}

===============================================================================

注釋類型還可以有成員變量,

==============================================================================

package tiger.annotation;

/**

* 用戶自定義標(biāo)簽??帶有成員變量的MyTag

*/

public @interface MyTag {

String name();

int age();

}

=============================================================================

然后我們可以這么使用這個(gè)標(biāo)簽,

@MyTag(name="MyTag",age=1)

public void testTag(){

}

使用標(biāo)簽最終是為了幫助開發(fā)人員提取注釋信息,然后根據(jù)不同需求做進(jìn)一步處理,下面我們來看看如何獲取注釋信息。

=============================================================================

import java.lang.annotation.Annotation;

import tiger.annotation.MyTag;

public class TagTest{

@MyTag(name="MyTag",age=1)

public void test(){

}

public static void main(String[] args){

TagTest tt = new TagTest();

try {



發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 道孚县| 政和县| 祁连县| 克什克腾旗| 海宁市| 右玉县| 清流县| 房产| 西乌珠穆沁旗| 江川县| 若羌县| 天峻县| 石家庄市| 尚志市| 鹿泉市| 亚东县| 武胜县| 柘城县| 如东县| 全州县| 安国市| 涪陵区| 兴城市| 普宁市| 福海县| 东辽县| 确山县| 布拖县| 万安县| 乐平市| 古田县| 措勤县| 将乐县| 五峰| 罗江县| 华坪县| 南部县| 南丹县| 武胜县| 如皋市| 锡林浩特市|