伊人99re_av日韩成人_91高潮精品免费porn_色狠狠色婷婷丁香五月_免费看的av_91亚色网站

中培偉業(yè)IT資訊頻道
您現(xiàn)在的位置:首頁 > IT資訊 > 軟件研發(fā) > 【中培課堂】詳解Java元數(shù)據(jù)

【中培課堂】詳解Java元數(shù)據(jù)

2017-01-19 09:50:02 | 來源:中培企業(yè)IT培訓(xùn)網(wǎng)

Java領(lǐng)域,選數(shù)據(jù)是一個重要的概念。中培偉業(yè)《JAVA高級開發(fā)技術(shù)實戰(zhàn)》培訓(xùn)專家龔老師在這里對元數(shù)據(jù)相關(guān)概念進行了詳細介紹。龔老師指出,元數(shù)據(jù)從metadata一詞譯來,就是關(guān)于數(shù)據(jù)的數(shù)據(jù)的意思。越來越的開源框架都提供了元數(shù)據(jù)支持了,其實也就是注釋支持。今天系統(tǒng)學(xué)習(xí)一下Java注釋(Java元數(shù)據(jù)。本文內(nèi)容不限于Javadoc的注釋。

1.什么是Java元數(shù)據(jù),有什么作用

元數(shù)據(jù),就是“關(guān)于數(shù)據(jù)的數(shù)據(jù)。功能也有很多啦。你可能用過Javadoc的注釋自動生成文檔。這就是元數(shù)據(jù)功能的一種。總的來說,元數(shù)據(jù)可以用來創(chuàng)建文檔,跟蹤代碼的依賴性,執(zhí)行編譯時格式檢查,代替已有的配置文件Hibernate也提供了注釋配置

注釋有3中基本類型

a.標(biāo)記注釋 --沒有變量,只有名稱標(biāo)識。例如 @annotation

b.單一值注釋 --在標(biāo)記注釋的基礎(chǔ)上提供一段數(shù)據(jù)。如 @annotation(“data”)

c.完整注釋 --可以包括多個數(shù)據(jù)成員,每個數(shù)據(jù)成員由名稱和值構(gòu)成。

@annotation(val1="data1",val2="data2")

2.Java注釋

Java中提供個內(nèi)置注釋類型

a. Override ,只能用于方法不能用于類,包聲明或者其他構(gòu)造

作用:可以保證編譯時候Override函數(shù)的聲明正確性

用法:@Override

public void fun(){..}

b.Deprecated 同樣只能作用與方法

作用:對不應(yīng)再使用的方法進行注解

用法:@Deprecated public void fun{...} //它們說這個注釋跟函數(shù)要同一行

c.SupressWarnings 可以注釋一段代碼

作用:關(guān)閉特定的警告信息,例如你在使用泛型的時候未指定類型

用法: @SupressWarnings(value={"unchecked"})

..代碼

Java中還提供了四種元注釋,專門負責(zé)注釋其他的注釋

@Target 表示該注釋可以用于什么地方。可用的ElementType參數(shù)包括:

CONSTRUCTOR : 構(gòu)造器的聲明

FIELD : 域聲明包括enum實例

LOCAL_VARIABLE : 局部變量聲明

METHOD : 方法聲明

PACKAGE : 包聲明

PARAMETER : 參數(shù)聲明

TYPE : 類、接口 包括注解類型) enum聲明

@Retention 表示需要在什么級別保存該注釋信息。可選的RetentionPoicy參數(shù)包括:

SOURCE : 注釋將被編譯器丟掉

CLASS : 注釋在class文件中可用,但會被VM丟棄

RUNTIME : VM將在運行時也保留注釋,因此可以通過反射機制讀取注釋的信息。

@Documented 將注釋包含在JavaDoc

@Inheried 允許子類繼承父類中的注釋。

3. Java中定義自己的注釋

Java語言支持一種新的類型——注釋類型(annotation type),跟普通類差不多,在類中以符號( @ )的形式注釋其他 Java 代碼

下面將通過一個簡單的例子來實現(xiàn)(代碼是Brett McLaughlin

@interface 申明

i.簡單的注釋類型

package com.oreilly.tiger.ch06; /** * Marker annotation to indicate that a method or class *still in progress. */ public @interface InProgress { }

ii.使用定制的注釋類型

@com.oreilly.tiger.ch06.InProgress public void calculateInterest(float amout,float rate) { //Need to finish this method later }

iii.添加成員

package com.oreilly.tiger.ch06; /** * Marker annotation to indicate that a method or class * is still in progress. */ public @interface InProgress { String value(); } @com.oreilly.tiger.ch06.InProgress @TODO("Figure out the amount of interest per month") //或者@TODO(value="Figure out the amount of interest per month") public void calculateInterest(float amount,float rate) { }

iv.設(shè)置默認值

package com.oreilly.tiger.ch06; public @interface GroupTODO { public enum Serverity { CRITICAL,IMPORTANT,IRIVIAL,DOCMENTATION }; Severity severity() default Severity.IMPORTANT; String item (); String assignedTo(); String dateAssigned(); } }

v.使用默認值

@com.oreilly.tiger.ch06.InProgress @GroupTODO( item="Figure out the amount of interest per month", assignedTo = "Brett McLaughlin", dateAssigned = "08/04/2004" ) public void calculateInterest(float amount, float rate) { //Need to finish this method later }

vi.改寫默認值

@com.oreilly.tiger.ch06.InProgress @GroupTODO { severity = GroupTODO.Severity.DOCUMENTATION, item = "Need to explain how this rather unusal method works", assignedTo = "Jon Stevens", dateAssigned = "07/30/2004" }

標(biāo)簽: Java開發(fā)
主站蜘蛛池模板: 天天爽夜夜爽夜夜爽精品视频 | 伊人狠狠色丁香综合尤物 | 精品一区二区三区的国产在线观看 | 宝贝腿开大点我添添公视频免费 | 中文字幕不卡av | 林深见鹿免费高清在线观看39集 | 久久久久亚洲精品无码系列 | 人妻被按摩到潮喷无码日本 | 日韩美女视频一区 | 国产亚洲一区二区三区啪 | a级毛片免费高清观看在线播放 | 亚洲一区二区三区波多野结衣 | 久久一级淫片 | 亚洲欧美日韩另类 | 日本丰满熟妇乱XXXXX故事 | 国产精一区 | 午夜麻豆| 爱草视频在线 | 国产精品一亚洲AV日韩AV欧 | 国产精品成| 超碰在线播放97 | 朝鲜美女黑毛bbw | 四面虎影最新播放网址 | 成熟少妇XXXXX高清视频 | 国产高清-国产av | 粉嫩av蜜臀一区二区三区 | 亚洲乱码av一区二区三区中文在线: | 亚洲欧美偷自乱图片 | 成人免费无遮挡在线播放 | 成人国产精品色哟哟 | 亚州av乱码久久精品蜜桃 | 久久成人tv | www.7788久久久久久久久 | 日本乱人伦片中文三区 | 亚洲不卡一区二区三区 | 一区二区久久 | 91av在线免费?看 | 少妇无码太爽了不卡白浆 | 国产偷v国产偷v亚洲 | 91久久偷偷做嫩草影院 | 欧美精品久久久久久久久免 |