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

歡迎訪問 生活随笔!

生活随笔

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

java

@value注解_Java系列之注解

發(fā)布時間:2023/12/15 java 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 @value注解_Java系列之注解 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Java 注解(Annotation)又稱之為 Java 標注、元數(shù)據(jù),是 Java 1.5 之后加入的一種特殊語法,通過注解可以標注 Java 中的類、方法、屬性、參數(shù)、包等,可以通過反射原理對這些元數(shù)據(jù)進行訪問,注解的使用不會影響程序的正常運行,只會對編譯器警告等輔助工具產(chǎn)生影響。

注解功能

  • 編譯器可以使用注解來檢測錯誤和取消警告;
  • 使用注解可以生成特定代碼,如 ButtferKnife 使用注解簡化 findViewById等;
  • 某些注解可以在運行時進行檢查和操作。

定義注解

注解的定義使用 @interface 作為關鍵字,實際上表示自動繼承了 java.lang.annotation.Annotation 接口,定義格式參考如下:

@元注解

配置參數(shù)里面的類型包括基本類型、String、class、枚舉以及相關類型的數(shù)組,可以使用 default 設置配置參數(shù)的默認值,定義一個注解具體如下:

@Target

內(nèi)置注解

  • @Override
  • @Deprecated
  • @SuppressWarnings
  • 下面是上面三個內(nèi)置注解的聲明:

    //表示當前的方法將覆蓋超類中的方法,編譯時進行格式檢查

    根據(jù)對上面三個注解的聲明來看,@SuppressWarnings 中定義了一個數(shù)組,這個數(shù)組表示在該注解上具體的目標是那些,如可在 SuppressWarnings 上使用的值,常用的具體如下:

    • deprecation:使用了過時的類或方法時的警告
    • unused:有未使用的變量時的警告
    • unchecked:執(zhí)行了未檢查的轉(zhuǎn)換時的警告
    • fallthrough:當 switch 程序塊直接通往下一種情況而沒有 break 時的警告
    • path:在類路徑、源文件路徑等中有不存在的路徑時的警告
    • serial:當在可序列化的類上缺少serialVersionUID 定義時的警告
    • finally :任何 finally 子句不能正常完成時的警告
    • all:關于以上所有情況的警告

    下面看一個案例,具體如下:

    public

    上面的代碼如果使用 eclipse 等其他 IDE 時會出現(xiàn)兩個警告,一是使用了過時的 API,二是變量 date 賦值后沒有被使用過,警告截圖如下:

    當然, IDE 會提示是否添加 SuppressWarnings 來取消這些警告,前文中可以看到注解 @SuppressWarnings 的聲明中需要配置參數(shù),這個參數(shù)是一個數(shù)組,數(shù)組名稱是 value,可以省略這個名稱, 具體如下:

    //不省略 public void test2() {@SuppressWarnings(value= {"deprecation", "unused"})long date = Date.parse("2018-04-22"); } //省略 public void test2() {@SuppressWarnings({"deprecation", "unused"})long date = Date.parse("2018-04-22"); }

    來張截圖說明一下使用 @SuppressWarnings 的效果,具體如下:

    如果只想取消一種警告可以這樣寫,具體如下:

    //第一種

    注意:如果在定義注解的配置參數(shù)名稱為 value,那么可以在配置注解時可以省略 value,反之,使用其他名稱,則必須采用第一種方式,要指定配置參數(shù)名稱。

    當然其他注解和 @SuppressWarnings 也比較類似, @Override、@Deprecated 由它們的聲明可知直接使用即可,不需要指定具體目標,在其聲明注解時用到了 @Documented、@Retention、@Target 等,這些用來注解其他注解的特殊注解稱之為元注解,具體請看下文。

    元注解

  • @Target
  • @Retention
  • @Documented
  • @Inherited
  • @Target

    @Target 用來描述注解的使用范圍,它的聲明如下:

    @Documented

    由 @Target 聲明可知使用 @Target 注解必須指定具體的 Java 成員,也就是該注解要使用到哪個位置,具體由枚舉 ElementType 中定義,具體如下:

    public

    @Retention

    @Retention 表示在什么級別保存該注解的信息,它的聲明如下:

    @Documented

    由 @Retention 的聲明可知,使用 @Retention 時,必須指定保存celue(RetentionPolicy),具體值如下:

    public

    @Documented 和 @Inherited 都沒有配置參數(shù),是一種標記注解,@Documented 表示將該注解顯示到用戶文檔中,@Inherited 表示該注解只有使用在類上才會有效,而且該注解會被子類繼承。

    類型注解

    在對元注解的說明中可知從 Java8 開始新增了類型注解,如果在注解 @Target 使用這種注解,表明該注解可以在對應的任何地方使用,如在 @Target 中指定 TYPE_PARAMETER 就可在自定義類型的聲明處使用該注解,如在 @Target 中指定 TYPE_USE 就可在任何類型前添加該類之間,主要是方便 Java 開發(fā)者使用類型注解和相關插件(Checker Framework)來檢查來在編譯期檢查運行時的異常。

    下面分別定義指定 TYPE_PARAMETER 和 TYPE_USE 的注解,具體如下:

    //1. TYPE_PARAMETER

    然后,在下面的案例中使用這兩個注解,具體如下:

    /**

    其實注解的語法比較簡單,僅僅定義注解對實際開發(fā)是沒有幫助的,覺得注解只有在運行時通過反射獲取注解信息才是最重要的,注解與反射相關的內(nèi)容會在以后的推文中學習,到此對注解的認識就結束了。

    總結

    以上是生活随笔為你收集整理的@value注解_Java系列之注解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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