国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Java的自定義注解

這篇具有很好參考價(jià)值的文章主要介紹了Java的自定義注解。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

java元注解和自定義注解的區(qū)別

Java的自定義注解是一種元數(shù)據(jù),可以應(yīng)用于類(lèi)、方法、字段等程序元素上,以提供額外的信息或指示。

????????自定義注解包括注解聲明、元注解、運(yùn)行時(shí)處理器三個(gè)部分。注解聲明指定了注解的名稱(chēng)、作用域、成員等信息;元注解則用來(lái)對(duì)注解進(jìn)行修飾;運(yùn)行時(shí)處理器則負(fù)責(zé)在程序運(yùn)行過(guò)程中處理注解,并根據(jù)注解提供的信息執(zhí)行相應(yīng)的邏輯。自定義注解在編寫(xiě)框架、插件等開(kāi)發(fā)時(shí)非常常見(jiàn),可以為代碼提供更多的靈活性和可擴(kuò)展性。

自定義注解類(lèi)可以通過(guò)以下步驟使用:

  1. 定義注解類(lèi),指定注解的元素和屬性。

  2. 在需要使用注解的地方,使用@注解名稱(chēng)來(lái)標(biāo)注目標(biāo)元素,可以是類(lèi)、方法、字段等程序元素。

  3. 可以使用反射機(jī)制獲取注解,并對(duì)注解進(jìn)行處理。

例如,定義一個(gè)自定義注解類(lèi):

import java.lang.annotation.*;
/**
 * @Description
 * @Author 劉品水
 * @Data 2023/5/5 18:44
 */
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD, ElementType.TYPE, ElementType.METHOD})
public @interface MyAnnotation {
    String value() default "";
    int num() default 0;
}

然后在代碼中使用該注解:

/**
 * @Description
 * @Author 劉品水
 * @Data 2023/5/5 18:44
 */
@MyAnnotation(value = "Hello 阿水!", num = 1314)
public class MyClass {
    @MyAnnotation("阿水")
    private String name;

    @MyAnnotation(num = 666,value = "聞道有先后,術(shù)業(yè)有專(zhuān)攻~")
    public void myMethod() {
        // Do something you want to do!
    }

    @MyAnnotation(value = " ")
    public void myMethod2() {
        // Do something you want to do!
    }
}

可以通過(guò)反射獲取注解并處理:

import java.lang.reflect.Field;
import java.lang.reflect.Method;

/**
 * @Description
 * @Author 劉品水
 * @Data 2023/5/5 18:46
 */
public class MyTest {
    public static void main(String[] args) throws Exception {
        // 獲取類(lèi)上的注解
        MyAnnotation classAnnotation = MyClass.class.getAnnotation(MyAnnotation.class);
        System.out.println("獲取類(lèi)上的注解value值:"+classAnnotation.value()); // 輸出:Hello 阿水!
        System.out.println("獲取類(lèi)上的注解num值:"+classAnnotation.num()); // 輸出:1314

        // 獲取字段上的注解
        Field field = MyClass.class.getDeclaredField("name");
        MyAnnotation fieldAnnotation = field.getAnnotation(MyAnnotation.class);
        System.out.println("獲取類(lèi)上的注解value值:"+fieldAnnotation.value()); // 輸出:阿水
        System.out.println("獲取類(lèi)上的注解num值:"+fieldAnnotation.num()); // 輸出:0

        // 獲取方法上的注解
        Method method = MyClass.class.getDeclaredMethod("myMethod");
        MyAnnotation methodAnnotation = method.getAnnotation(MyAnnotation.class);
        System.out.println("獲取myMethod方法上的注解value值:"+methodAnnotation.value()); // 輸出:聞道有先后,術(shù)業(yè)有專(zhuān)攻~
        System.out.println("獲取myMethod方法上的注解num值:"+methodAnnotation.num()); // 輸出:666

        // 獲取方法上的注解
        Method method2 = MyClass.class.getDeclaredMethod("myMethod2");
        MyAnnotation methodAnnotation2 = method2.getAnnotation(MyAnnotation.class);
        System.out.println("獲取myMethod2方法上的注解value值:"+methodAnnotation2.value()); // 輸出:
        System.out.println("獲取myMethod2方法上的注解num值:"+methodAnnotation2.num()); // 輸出:0

    }
}

Java的自定義注解

注意:自定義注解類(lèi)必須要有@Retention和@Target元注解,@Retention指定注解的保留策略,@Target指定注解可以應(yīng)用到哪些元素上。在這里,我們使用RUNTIME保留策略表示注解在運(yùn)行時(shí)仍然有效,并且使用TYPE和METHOD作為注解的目標(biāo)元素。

Java自定義注解類(lèi)使用注意事項(xiàng)

????????在使用Java自定義注解類(lèi)時(shí),需要注意以下幾點(diǎn):文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-435094.html

  1. 注解元素類(lèi)型:自定義注解中的元素類(lèi)型必須是基本數(shù)據(jù)類(lèi)型、String、Class、枚舉類(lèi)型或者其他注解類(lèi)型。

  2. 注解屬性默認(rèn)值和賦值:自定義注解中的屬性可以設(shè)置默認(rèn)值,但在使用注解時(shí)可以不指定該屬性的值。如果需要給屬性賦值,則必須按照屬性名=屬性值的格式進(jìn)行賦值。

  3. 自定義注解可以使用反射機(jī)制來(lái)獲取和處理,因此要保證注解中的元素符合Java語(yǔ)言規(guī)范,不會(huì)導(dǎo)致編譯錯(cuò)誤。

  4. 可以使用元注解@Retention和@Target來(lái)指定注解的保留策略和目標(biāo)范圍。一般情況下,@Retention應(yīng)該設(shè)置為RUNTIME,@Target應(yīng)該根據(jù)需要選擇適當(dāng)?shù)哪繕?biāo)類(lèi)型。

  5. 在使用注解時(shí),應(yīng)該遵循注解的語(yǔ)法規(guī)則,即使用 "@" 符號(hào)后跟著注解名稱(chēng),并在括號(hào)中指定注解屬性和值。如果需要使用多個(gè)注解,則可以將它們放在同一個(gè)目標(biāo)元素上,或者使用Java 1.8新增的@Repeatable注解。

????????總之,在使用Java自定義注解時(shí),需要遵守Java語(yǔ)法規(guī)范和注解的語(yǔ)法規(guī)則,注意注解元素類(lèi)型、屬性默認(rèn)值和賦值、保留策略、目標(biāo)類(lèi)型等細(xì)節(jié)問(wèn)題,才能保證注解的正確性和有效性。同時(shí)也需要理解注解的原理和機(jī)制,才能更好地應(yīng)用自定義注解處理程序邏輯。

到了這里,關(guān)于Java的自定義注解的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 使用ETLCloud強(qiáng)大的自定義規(guī)則實(shí)現(xiàn)自定義數(shù)據(jù)處理算法

    使用ETLCloud強(qiáng)大的自定義規(guī)則實(shí)現(xiàn)自定義數(shù)據(jù)處理算法

    實(shí)時(shí)數(shù)據(jù)處理規(guī)則有什么作用 ? 在大數(shù)據(jù)中的實(shí)時(shí)數(shù)據(jù)采集、ETL批量數(shù)據(jù)傳輸過(guò)程中很多數(shù)據(jù)處理過(guò)程以及數(shù)據(jù)質(zhì)量都希望實(shí)時(shí)進(jìn)行處理和檢測(cè)并把不符合要求的臟數(shù)據(jù)過(guò)濾掉或者進(jìn)行實(shí)時(shí)的數(shù)據(jù)質(zhì)量告警等。 在數(shù)據(jù)倉(cāng)庫(kù)建設(shè)過(guò)程中,每家企業(yè)的數(shù)據(jù)處理過(guò)程中肯定會(huì)有一

    2024年02月08日
    瀏覽(22)
  • 基于elasticsearch的自定義業(yè)務(wù)告警的設(shè)計(jì)思路,java多線程面試題匯總

    基于elasticsearch的自定義業(yè)務(wù)告警的設(shè)計(jì)思路,java多線程面試題匯總

    這個(gè)是elasticsearch的官方插件,它可以根據(jù)數(shù)據(jù)的變化提供警報(bào)和通知,目前是收費(fèi)的,具體操作配置可以參看官方地址 elastalert 是Yelp公司基于python寫(xiě)的告警框架,大家可以去GitHub上查看具體使用方法。elastalert 自定義開(kāi)發(fā) 自定義開(kāi)發(fā)實(shí)現(xiàn) 主要由以下幾個(gè)步驟實(shí)現(xiàn): 分離出單

    2024年04月25日
    瀏覽(27)
  • Java|注解之定義注解

    Java|注解之定義注解

    Java語(yǔ)言使用 @interface 語(yǔ)法來(lái)定義注解( Annotation ),它的格式如下: ?注解的參數(shù)類(lèi)似無(wú)參數(shù)方法,可以用 default 設(shè)定一個(gè)默認(rèn)值(強(qiáng)烈推薦)。最常用的參數(shù)應(yīng)當(dāng)命名為 value 。 元注解 有一些注解可以修飾其他注解,這些注解就稱(chēng)為元注解 (meta annotation)。Java標(biāo)準(zhǔn)庫(kù)已經(jīng)

    2024年02月05日
    瀏覽(18)
  • 【算法與數(shù)據(jù)結(jié)構(gòu)】3 知行合一,線性查找的自定義類(lèi)測(cè)試

    【算法與數(shù)據(jù)結(jié)構(gòu)】3 知行合一,線性查找的自定義類(lèi)測(cè)試

    歡迎來(lái)到愛(ài)書(shū)不愛(ài)輸?shù)某绦蛟车牟┛? 本博客致力于知識(shí)分享,與更多的人進(jìn)行學(xué)習(xí)交流 本文收錄于算法與數(shù)據(jù)結(jié)構(gòu)體系專(zhuān)欄, 本專(zhuān)欄 對(duì)于0基礎(chǔ)者極為友好,歡迎與我一起完成算法與數(shù)據(jù)結(jié)構(gòu)的從0到1的跨越 ??首篇詳細(xì)講述線性查找法并且對(duì)其進(jìn)行了 初步的優(yōu)化 :??傳送門(mén)

    2023年04月27日
    瀏覽(19)
  • 【Java基礎(chǔ)】注解——自定義注解

    【Java基礎(chǔ)】注解——自定義注解

    Java 注解(Annotation)又稱(chēng) Java 標(biāo)注,是 JDK5.0 引入的一種注釋機(jī)制。 比如我們常見(jiàn)的@Override和@Deprecated都是注解,注解可以加在類(lèi)、方法、成員變量等上面,類(lèi)似于給他們“ 打標(biāo)簽 \\\"。 public @interface 注解名{} 看起來(lái)和定義接口很相似只是多了一個(gè)@符號(hào) 接口: public interface 接口名

    2024年02月03日
    瀏覽(19)
  • YOLO 算法的自定義數(shù)據(jù)集制作及模型訓(xùn)練方法(附代碼)

    YOLO 算法的自定義數(shù)據(jù)集制作及模型訓(xùn)練方法(附代碼)

    本文章主要涉及以下工作: ???(1)詳細(xì)介紹了怎樣制作YOLO的自定義數(shù)據(jù)集以及如何使用自定義數(shù)據(jù)集訓(xùn)練YOLO模型。 ???(2)對(duì)YOLOv5、YOLOv6、YOLOv7、YOLOv8進(jìn)行了部分修改,能夠適配自定義數(shù)據(jù)集進(jìn)行訓(xùn)練。 ???(3)提供了各YOLO算法的目標(biāo)檢測(cè)模型的預(yù)訓(xùn)練權(quán)重。 ???(

    2024年02月13日
    瀏覽(20)
  • Java中的注解,自定義注解

    Java中的注解,自定義注解

    框架 = 注解 + 反射 + 設(shè)計(jì)模式 注解( Annotation )是從JDK5.0開(kāi)始引入,以“@注解名”在代碼中存在。 Annotation 可以像修飾符一樣被使用,可用于修飾包、類(lèi)、構(gòu)造器、方法、成員變量、參數(shù)、局部變量的聲明。還可以添加一些參數(shù)值,這些信息被保存在 Annotation 的 “name=valu

    2023年04月16日
    瀏覽(24)
  • 織夢(mèng)cms(DEDECMS)通過(guò)正則批量查找替換數(shù)據(jù)庫(kù)的自定義內(nèi)容

    例如網(wǎng)站的一個(gè)例子 是替換一個(gè)div中的內(nèi)容,摘抄實(shí)踐下,關(guān)鍵還是自己去體會(huì),多用下正則,還是不錯(cuò)的、正則相關(guān)的文章我在我的博客中也多次提到了他的多種運(yùn)用途徑。如果你都掌握好它的話(huà),你的工作效率就會(huì)成倍的提高了。下面這個(gè)正則的用途是查找數(shù)據(jù)庫(kù)的中自

    2024年02月02日
    瀏覽(23)
  • 【mmaction2 入門(mén)教程 04】訓(xùn)練 AVA 數(shù)據(jù)集中的自定義類(lèi)別

    【mmaction2 入門(mén)教程 04】訓(xùn)練 AVA 數(shù)據(jù)集中的自定義類(lèi)別

    在時(shí)空行為數(shù)據(jù)集中,最常出現(xiàn)的就是長(zhǎng)尾數(shù)據(jù)集,即某些類(lèi)別的動(dòng)作標(biāo)簽過(guò)少,導(dǎo)致訓(xùn)練效果不好,在mmation2當(dāng)中,提供了一個(gè)方法,就是可以自定義要訓(xùn)練的類(lèi)別。 那么先看看我之前訓(xùn)練的分析結(jié)果 上圖中,深藍(lán)色的樣本數(shù)量,淺藍(lán)色的ap值,可以看出,樣本極少的類(lèi)別

    2024年02月02日
    瀏覽(33)
  • java 元注解||自定義注解的使用

    1. @Retention注解 指定了標(biāo)記的注解如何存儲(chǔ): RetentionPolicy.SOURCE,標(biāo)記的注解僅保留在源代碼級(jí)別,并被編譯器忽略。 RetentionPolicy.CLASS,標(biāo)記的注解在編譯時(shí)由編譯器保留,但被Java虛擬機(jī)(JVM)忽略。 RetentionPolicy.RUNTIME,標(biāo)記的注解由JVM保留,以便運(yùn)行時(shí)環(huán)境可以使用。 2. @Do

    2024年02月16日
    瀏覽(24)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包