国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

java自定義注解

X_AirDu / 689人閱讀

摘要:自定義注解上面是一個(gè)自定義的注解類,使用元注解來(lái)定義自定義注解,自定義注解的函數(shù)名就是參數(shù)名,函數(shù)返回類型是變量的類型。自定義注解來(lái)對(duì)字段進(jìn)行一定的約束如在通信的雙方。

在我們編程過(guò)程中,會(huì)經(jīng)常需要使用到注解,在使用spring進(jìn)行應(yīng)用構(gòu)建的過(guò)程中會(huì)使用到非常多的spring注解。這篇就來(lái)談一談我們是如何去定義自己的注解在程序中進(jìn)行使用的。

0x01 元注解

jdk1.8給我們提供了如下注解:

1.@Target
2.@Retention
3.@Documented
4.@Inherited
5.@Native
6.@Repeatable

上面這些類型都在jdk提供的java.lang.annotation包下,下面介紹兩個(gè)常用的注解類:

一、Target:描述注解的作用范圍,表示這個(gè)注解能用在什么什么地方。取值(ElementType)有:

1.CONSTRUCTOR:用于描述構(gòu)造器
2.FIELD:用于描述域
3.LOCAL_VARIABLE:用于描述局部變量
4.METHOD:用于描述方法
5.PACKAGE:用于描述包
6.PARAMETER:用于描述參數(shù)
7.TYPE:用于描述類、接口(包括注解類型) 或enum聲明

上面的定義都在java.lang.annotation.ElementType類中。

二、Retention:描述注解的生命周期。取值有如下幾個(gè)(定義在java.lang.annotation.RetentionPolicy中):

1.SOURCE:源文件
2.CLASS:class文件
3.RUNTIME:運(yùn)行時(shí)

平時(shí)我們用的比較多的值是RUNTIME,注解在運(yùn)行時(shí)生效。

0x02 自定義注解
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ ElementType.FIELD})
public @interface NotNull {
    public String value() default "1234";
}

上面是一個(gè)自定義的注解類,使用元注解來(lái)定義自定義注解,自定義注解的函數(shù)名就是參數(shù)名,函數(shù)返回類型是變量的類型。返回類型只能是基本類型、Class、Enum、String,可以通過(guò)default來(lái)聲明參數(shù)的默認(rèn)值。

下面來(lái)看下如何使用這個(gè)注解:

在類的定義中使用上面自定義的注解類:

public class TypeClass {

    @NotNull
    public int intType;

    public String s;

    @Override
    public String toString() {
        return "TypeClass{" +
                "intType=" + intType +
                ", s="" + s + """ +
                "}";
    }
}

使用上面定義的類:

TypeClass typeClass = new TypeClass();

Field[] fields = TypeClass.class.getDeclaredFields();
for (Field field : fields) {

    NotNull annotation = field.getAnnotation(NotNull.class);
    if(annotation != null) {
        System.out.println(field.getName() + "  " +annotation);
        System.out.println("CFNotNull value: " + annotation.value());
    }
}

上面的示例中可以拿到TypeClass的所有字段,然后逐個(gè)去判斷字段的注解,根據(jù)自己定義的注解去做不同的邏輯操作。

0x03 使用場(chǎng)景

1.開(kāi)篇就提到了spring中我們會(huì)用到很多注解。
2.自定義注解來(lái)對(duì)字段進(jìn)行一定的約束(如在通信的雙方)。
3.對(duì)注解修飾的對(duì)象進(jìn)行說(shuō)明限制(比如mvc應(yīng)用對(duì)權(quán)限進(jìn)行集中控制)。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/65157.html

相關(guān)文章

  • Java注解-元數(shù)據(jù)、注解分類、內(nèi)置注解定義注解

    摘要:注解有以下幾個(gè)知識(shí)點(diǎn)元數(shù)據(jù)注解的分類內(nèi)置注解自定義注解注解處理器本文先介紹前面?zhèn)€知識(shí)點(diǎn)元數(shù)據(jù)注解的分類內(nèi)置注解自定義注解。注解相當(dāng)于是一種嵌入在程序中的元數(shù)據(jù),可以使用注解解析工具或編譯器對(duì)其進(jìn)行解析,也可以指定注解在編譯期或運(yùn)行期有效。 大家好,我是樂(lè)字節(jié)的小樂(lè),上次說(shuō)過(guò)了Java多態(tài)的6大特性|樂(lè)字節(jié),接下來(lái)我們來(lái)看看Java編程里的注解。showImg(https://segme...

    Yujiaao 評(píng)論0 收藏0
  • java 日志脫敏框架 sensitive-v0.0.4 系統(tǒng)內(nèi)置常見(jiàn)注解,支持定義注解

    摘要:項(xiàng)目介紹日志脫敏是常見(jiàn)的安全需求。常見(jiàn)的脫敏內(nèi)置方案。支持用戶自定義注解。自定義注解導(dǎo)入自定義注解新增功能。策略優(yōu)先級(jí)優(yōu)先生效,然后是系統(tǒng)內(nèi)置注解,最后是用戶自定義注解。讓這些的密碼不進(jìn)行脫敏定義測(cè)試對(duì)象定義一個(gè)使用自定義注解的對(duì)象。 項(xiàng)目介紹 日志脫敏是常見(jiàn)的安全需求。普通的基于工具類方法的方式,對(duì)代碼的入侵性太強(qiáng)。編寫起來(lái)又特別麻煩。 本項(xiàng)目提供基于注解的方式,并且內(nèi)置了常見(jiàn)的脫敏...

    cheng10 評(píng)論0 收藏0
  • Java基礎(chǔ)02-定義注解詳解

    摘要:注解概念注解也被成為元數(shù)據(jù)為我們?cè)诖a中添加信息提供了一種形式化的方式,使我們可以在稍后的某個(gè)時(shí)刻更容易的使用這些數(shù)據(jù)。 注解 概念 注解(也被成為元數(shù)據(jù))為我們?cè)诖a中添加信息提供了一種形式化的方式,使我們可以在稍后的某個(gè)時(shí)刻更容易的使用這些數(shù)據(jù)。 注解是 Java 5 所引入的眾多語(yǔ)言變化之一: 注解使得我們可以以編譯器驗(yàn)證的格式存儲(chǔ)程序的額外信息 注解可以生成描述符文件,甚至是...

    andong777 評(píng)論0 收藏0
  • Java知識(shí)點(diǎn)總結(jié)(注解-定義注解

    摘要:我們定義注解元素時(shí),經(jīng)常使用空字符串作為默認(rèn)值。也經(jīng)常使用負(fù)數(shù)比如表示不存在的含義示例既可以修飾方法,也可以修飾類運(yùn)行時(shí)使用關(guān)鍵字定義注解成員以無(wú)參無(wú)異常方式聲明。方法的名稱就是參數(shù)的名稱可以使用為成員指定一個(gè)默認(rèn)值浙江大學(xué)清華大學(xué)張三 Java知識(shí)點(diǎn)總結(jié)(注解-自定義注解) @(Java知識(shí)點(diǎn)總結(jié))[Java, 注解] 使用@interface自定義注解時(shí),自動(dòng)繼承了java.lan...

    zhouzhou 評(píng)論0 收藏0
  • spring 定義注解(annotation)與 aop獲取注解

    摘要:知識(shí)點(diǎn)自定義注解的使用首先我們先介紹自定義注解。元注解的作用就是負(fù)責(zé)注解其他注解。元注解是一個(gè)標(biāo)記注解,闡述了某個(gè)被標(biāo)注的類型是被繼承的。在定義注解時(shí),不能繼承其他的注解或接口。 知識(shí)點(diǎn): Java自定義注解、spring aop @aspect的使用 首先我們先介紹Java自定義注解。 在開(kāi)發(fā)過(guò)程中,我們實(shí)現(xiàn)接口的時(shí)候,會(huì)出現(xiàn)@Override,有時(shí)還會(huì)提示寫@SuppressWa...

    Raaabbit 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<