成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Java元數據總結:Java注釋的使用和定義

開發 后端
元數據,就是“關于數據的數據”。Java元數據有3種基本類型,還有3個Java內置注釋類型,另外還有4中元注釋類型。本文對其進行介紹與總結。

元數據從metadata一詞譯來,就是“關于數據的數據”的意思。越來越的開源框架都提供了“元數據”支持了,其實也就是注釋支持。今天系統學習一下Java注釋(Java元數據)。本文內容不限于Javadoc的注釋。

1.什么是Java元數據,有什么作用?

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

注釋有3中基本類型

a.標記注釋      --沒有變量,只有名稱標識。例如 @annotation
b.單一值注釋    --在標記注釋的基礎上提供一段數據。如 @annotation(“data”)
c.完整注釋      --可以包括多個數據成員,每個數據成員由名稱和值構成。
                  @annotation(val1="data1",val2="data2")

2.Java的“注釋”

Java中提供3個內置注釋類型

a. Override ,只能用于方法(不能用于類,包聲明或者其他構造)
              作用:可以保證編譯時候Override函數的聲明正確性
              用法:@Override
                    public void fun(){..}

b.Deprecated  同樣只能作用與方法
              作用:對不應再使用的方法進行注解
              用法:@Deprecated public void fun{...} //它們說這個注釋跟函數要同一行

c.SupressWarnings 可以注釋一段代碼
                  作用:關閉特定的警告信息,例如你在使用泛型的時候未指定類型
                  用法: @SupressWarnings(value={"unchecked"})
                         ..代碼

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

@Target   表示該注釋可以用于什么地方。可用的ElementType參數包括:
          CONSTRUCTOR : 構造器的聲明
          FIELD : 域聲明(包括enum實例)
          LOCAL_VARIABLE : 局部變量聲明
          METHOD : 方法聲明
          PACKAGE : 包聲明
          PARAMETER : 參數聲明
          TYPE : 類、接口 (包括注解類型) 或enum聲明

@Retention 表示需要在什么級別保存該注釋信息。可選的RetentionPoicy參數包括:
           SOURCE : 注釋將被編譯器丟掉
           CLASS : 注釋在class文件中可用,但會被VM丟棄
           RUNTIME : VM將在運行時也保留注釋,因此可以通過反射機制讀取注釋的信息。

@Documented 將注釋包含在JavaDoc中

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

3. 在Java中定義自己的注釋

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

下面將通過一個簡單的例子來實現(代碼是Brett McLaughlin 的)
@interface 申明

i.簡單的注釋類型

  1. package com.oreilly.tiger.ch06;  
  2. /**  
  3.  * Marker annotation to indicate that a method or class  
  4.  * is still in progress.  
  5.  */ 
  6. public @interface InProgress { }  

ii.使用定制的注釋類型

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

iii.添加成員

  1. package com.oreilly.tiger.ch06;  
  2. /**  
  3.  * Marker annotation to indicate that a method or class  
  4.  * is still in progress.  
  5.  */ 
  6. public @interface InProgress {  
  7.   String value();   
  8.  }  
  9.  
  10. @com.oreilly.tiger.ch06.InProgress  
  11. @TODO("Figure out the amount of interest per month")  
  12. //或者@TODO(value="Figure out the amount of interest per month")  
  13. public void calculateInterest(float amount,float rate)  
  14. {  
  15. }  
  16.  

iv.設置默認值

  1. package com.oreilly.tiger.ch06;  
  2. public @interface GroupTODO {  
  3.   public enum Serverity { CRITICAL,IMPORTANT,IRIVIAL,DOCMENTATION };  
  4.   Severity severity()  
  5.           default Severity.IMPORTANT;  
  6.   String item ();  
  7.   String assignedTo();  
  8.   String dateAssigned();  
  9. }  
  10. }  

v.使用默認值

  1. @com.oreilly.tiger.ch06.InProgress  
  2. @GroupTODO(  
  3.  item="Figure out the amount of interest per month",  
  4.  assignedTo = "Brett McLaughlin",  
  5.  dateAssigned = "08/04/2004" 
  6. )  
  7.  
  8. public void calculateInterest(float amount, float rate)  
  9. {  
  10.    //Need to finish this method later  
  11. }  
  12.  

vi.改寫默認值

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

這樣就對Java元數據/Java注釋進行了總結。

【編輯推薦】

  1. J2SE5.0中的注釋特性
  2. JavaDoc注釋的使用
  3. EJB注釋是通過@來實現的
  4. Eclipse+JBoss+EJB3的Session Bean注釋方法
  5. J2SE1.5注釋語法簡介
責任編輯:yangsai 來源: JavaEye博客
相關推薦

2023-11-14 10:05:52

Java開發工具

2021-09-01 10:37:25

鴻蒙HarmonyOS應用

2015-03-09 14:18:41

Java注釋原則

2021-12-30 12:30:01

Java注解編譯器

2009-06-16 11:29:32

Javadoc

2010-01-08 14:36:01

生成 JSON

2009-12-21 16:37:41

WCF獲取服務元數據

2012-03-15 11:21:19

Java

2023-08-07 09:00:00

2010-06-11 17:10:02

Java框架開源

2022-06-09 21:19:21

元宇宙多維度互聯網

2009-07-29 17:42:55

JavaScript和JavaJScript

2020-02-07 08:00:00

ExifTool提取文件開源

2016-12-15 13:31:20

Java異常處理經驗

2023-05-08 08:00:00

2023-10-30 15:28:51

數據倉庫

2021-09-27 23:58:55

數據庫分層設計

2022-06-24 09:58:35

大數據JavaPython

2023-03-13 10:01:27

Java注釋

2012-02-08 09:44:52

Java反射
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品一区二区av | 亚洲淫视频 | 国产亚洲精品久久久久动 | 精品久久一区 | 91精品一区二区三区久久久久 | 久久精品国产亚洲 | 奇米久久 | www在线| 高清成人av | 91视频国产精品 | 日韩av大片免费看 | 亚洲精品日韩一区二区电影 | a在线视频 | 中文字幕亚洲视频 | 欧美一区两区 | 国产成人精品久久二区二区91 | 在线观看免费av网 | 伊人伊人| av永久免费 | 日日摸日日碰夜夜爽亚洲精品蜜乳 | 久操亚洲| 日日夜夜天天久久 | 国产精品视频久久 | 国产乱码精品一品二品 | 91色视频在线观看 | 最新av在线网址 | 精品成人佐山爱一区二区 | 一级做受毛片免费大片 | 久久丝袜视频 | 精品91视频 | 毛片a| 黄片毛片免费看 | 国产精品毛片一区二区在线看 | 日韩欧美精品在线 | 成人福利网 | 亚洲女人天堂网 | 日韩在线一区二区 | 国产精品欧美一区二区三区 | 欧美区在线观看 | 欧美日韩在线免费观看 | 日韩一区二区三区在线视频 |