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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

1.8 自定义注解

發(fā)布時(shí)間:2025/3/20 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 1.8 自定义注解 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前面我們學(xué)習(xí)了 Java 的基本注解和元注解,如果這兩種注解不能滿足你的需求,可以自定義注解。下面介紹如何自定義注解。

聲明自定義注解使用 @interface 關(guān)鍵字(interface 關(guān)鍵字前加 @ 符號(hào))實(shí)現(xiàn)。定義注解與定義接口非常像,如下代碼可定義一個(gè)簡(jiǎn)單形式的注解類型。

// 定義一個(gè)簡(jiǎn)單的注解類型 public @interface Test { }

上述代碼聲明了一個(gè) Test 注解。默認(rèn)情況下,注解可以在程序的任何地方使用,通常用于修飾類、接口、方法和變量等。

定義注解和定義類相似,注解前面的訪問修飾符和類一樣有兩種,分別是公有訪問權(quán)限(public)和默認(rèn)訪問權(quán)限(默認(rèn)不寫)。一個(gè)源程序文件中可以聲明多個(gè)注解,但只能有一個(gè)是公有訪問權(quán)限的注解。且源程序文件命名和公有訪問權(quán)限的注解名一致。

不包含任何成員變量的注解稱為標(biāo)記注解,例如上面聲明的 Test 注解以及基本注解中的 @Override 注解都屬于標(biāo)記注解。根據(jù)需要,注解中可以定義成員變量,成員變量以無形參的方法形式來聲明,其方法名和返回值定義了該成員變量的名字和類型。代碼如下所示:

public @interface MyTag {// 定義帶兩個(gè)成員變量的注解// 注解中的成員變量以方法的形式來定義String name();int age(); }

以上代碼中聲明了一個(gè) MyTag 注解,定義了兩個(gè)成員變量,分別是 name 和 age。成員變量也可以有訪問權(quán)限修飾符,但是只能有公有權(quán)限和默認(rèn)權(quán)限。

如果在注解里定義了成員變量,那么使用該注解時(shí)就應(yīng)該為它的成員變量指定值,如下代碼所示。

public class Test {// 使用帶成員變量的注解時(shí),需要為成員變量賦值@MyTag(name="xx", age=6)public void info() {...}... }

注解中的成員變量也可以有默認(rèn)值,可使用 default 關(guān)鍵字。如下代碼定義了 @MyTag 注解,該注解里包含了 name 和 age 兩個(gè)成員變量。

public @interface MyTag {// 定義了兩個(gè)成員變量的注解// 使用default為兩個(gè)成員變量指定初始值String name() default "C語言中文網(wǎng)";int age() default 7; }

如果為注解的成員變量指定了默認(rèn)值,那么使用該注解時(shí)就可以不為這些成員變量賦值,而是直接使用默認(rèn)值。

public class Test {// 使用帶成員變量的注解// MyTag注釋的成員變量有默認(rèn)值,所以可以不為它的成員變量賦值@MyTagpublic void info() {...}... }

當(dāng)然也可以在使用 MyTag 注解時(shí)為成員變量指定值,如果為 MyTag 的成員變量指定了值,則默認(rèn)值不會(huì)起作用。

根據(jù)注解是否包含成員變量,可以分為如下兩類。

  • 標(biāo)記注解:沒有定義成員變量的注解類型被稱為標(biāo)記注解。這種注解僅利用自身的存在與否來提供信息,如前面介紹的 @Override、@Test等都是標(biāo)記注解。
  • 元數(shù)據(jù)注解:包含成員變量的注解,因?yàn)樗鼈兛梢越邮芨嗟脑獢?shù)據(jù),所以也被稱為元數(shù)據(jù)注解。
  • 總結(jié)

    以上是生活随笔為你收集整理的1.8 自定义注解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

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