日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java元数据总结:Java注释的使用和定义

發(fā)布時間:2023/12/18 java 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java元数据总结:Java注释的使用和定义 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
元數(shù)據(jù)從metadata一詞譯來,就是“關(guān)于數(shù)據(jù)的數(shù)據(jù)”的意思。越來越的開源框架都提供了“元數(shù)據(jù)”支持了,其實也就是注釋支持。今天系統(tǒng)學習一下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.標記注釋 --沒有變量,只有名稱標識。例如 @annotation
  b.單一值注釋 --在標記注釋的基礎(chǔ)上提供一段數(shù)據(jù)。如 @annotation(“data”)
  c.完整注釋 --可以包括多個數(shù)據(jù)成員,每個數(shù)據(jù)成員由名稱和值構(gòu)成。
  @annotation(val1="data1",val2="data2")
  2.Java的“注釋”
  Java中提供3個內(nèi)置注釋類型
  a. Override ,只能用于方法(不能用于類,包聲明或者其他構(gòu)造)
  作用:可以保證編譯時候Override函數(shù)的聲明正確性
  用法:@Override
  public void fun(){..}
  b.Deprecated 同樣只能作用與方法
  作用:對不應再使用的方法進行注解
  用法:@Deprecated public void fun{...} //它們說這個注釋跟函數(shù)要同一行
  c.SupressWarnings 可以注釋一段代碼
  作用:關(guān)閉特定的警告信息,例如你在使用泛型的時候未指定類型
  用法: @SupressWarnings(value={"unchecked"})
  ..代碼
  Java中還提供了四種元注釋,專門負責注釋其他的注釋
  @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 * is 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" }
  這樣就對Java元數(shù)據(jù)/Java注釋進行了總結(jié)。

轉(zhuǎn)載于:https://www.cnblogs.com/jacktu/archive/2010/08/02/1790209.html

總結(jié)

以上是生活随笔為你收集整理的Java元数据总结:Java注释的使用和定义的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。