自定義java注解【原創(chuàng)】

注解的用途

在實際的java開發(fā)中我們會使用各種各樣的注解,每個注解都有不用的作用,也有不同的作用范圍,比如長見的@Override注解,在重寫父類方法的時候會出現(xiàn),最常見的地方就是接口的實現(xiàn)類中,再有就是在方法入?yún)⒌臅r候經(jīng)常需要用到的lombok的@NonNull注解,有了這個注解就可以控制入?yún)?shù)不為null,不需要自己手動實現(xiàn)校驗邏輯。大多數(shù)的注解并沒有實現(xiàn)注解名稱對應的功能,僅僅是起到標記的作用,真正起作用的或者實現(xiàn)這些功能的代碼邏輯在其他的class文件中,關(guān)于如何通過注解實現(xiàn)某些功能下個章節(jié)在將,這個章節(jié)只講如何創(chuàng)建自定義注解

先來看下lombok中@NonNull注解

lombok中的@NonNull注解

這是一個標記注解,結(jié)構(gòu)非常的簡單,只是在interface前面加上了@符號,上面多了幾個其他的注解而已

@Target注解以及其中參數(shù)作用:表明這個注解能用在哪些地方,target里面可以放多個值每個值對應如下

1.ElementType.CONSTRUCTOR:用于構(gòu)造器

2.ElementType.FIELD:用于屬性

3.ElementType.LOCAL_VARIABLE:用于局部變量

4.ElementType.METHOD:用于方法

5.ElementType.PACKAGE:用于包

6.ElementType.PARAMETER:用于參數(shù)

7.ElementType.TYPE:用于類、接口(包括注解類型) 或enum聲明

注解類上的其余注解的作用

@Documented – 注解是否將包含在JavaDoc中

@Retention – 什么時候使用該注解

@Inherited – 是否允許子類繼承該注解

一般來說,自定義注解的使用范圍不要寫的太寬,按照自己的使用場景在target中的選擇合適的范圍就行

以下是我在項目中使用的兩個標記注解


只能用來標記入?yún)⒌膮?shù)


只能用來標記方法
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容