詳解JDK 5 Annotation 注解之@Target的用法介紹
前言
目前,越來越多的架構(gòu)設(shè)計(jì)在使用注解,例如spring3.0、struts2等框架。讓我們先來看看注解的定義。如下是一段使用了JDK 5 Annotation @Target的代碼:
@Target({ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) @Inherited @Documented public @interface AsynLog { }
一、@Target的用法
java.lang.annotation.Target
用于設(shè)定注解使用范圍
java.lang.annotation.ElementType
Target通過ElementType來指定注解可使用范圍的枚舉集合
二、ElementType的用法
取值 | 注解使用范圍 |
METHOD | 可用于方法上 |
TYPE | 可用于類或者接口上 |
ANNOTATION_TYPE | 可用于注解類型上(被@interface修飾的類型) |
CONSTRUCTOR | 可用于構(gòu)造方法上 |
FIELD | 可用于域上 |
LOCAL_VARIABLE | 可用于局部變量上 |
PACKAGE | 用于記錄java文件的package信息 |
PARAMETER | 可用于參數(shù)上 |
這里重點(diǎn)說明下:ElementType. PACKAGE。它并不是使用在一般的類中,而是用在固定的文件package-info.java中。這里需要強(qiáng)調(diào)命名一定是“package-info”。由于package-info.java并不是一個(gè)合法的類,使用eclipse創(chuàng)建類的方式會(huì)提示不合法,所以需要以創(chuàng)建文件的方式來創(chuàng)建package-info.java。
例如,定義可使用范圍PACKAGE:
@Target({ElementType.PACKAGE,ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) @Inherited @Documented public @interface AsynLog { }
那么,創(chuàng)建文件:package-info.java,內(nèi)容如下:
@AsynLog
package org.my.commons.logs.annotation;
重點(diǎn)說明:注解只能在ElementType設(shè)定的范圍內(nèi)使用,否則將會(huì)編譯報(bào)錯(cuò)。例如:范圍只包含ElementType.METHOD ,則表明該注解只能使用在類的方法上,超出使用范圍將編譯異常。
相關(guān)文章
spring5 SAXParseException:cvc-elt.1: 找不到元素“beans 的聲明詳解
這篇文章主要給大家介紹了關(guān)于spring5 SAXParseException:cvc-elt.1: 找不到元素“beans 聲明的相關(guān)資料,需要的朋友可以參考下2020-08-08如何理解Java中基類子對(duì)象的構(gòu)建過程從"基類向外"進(jìn)行擴(kuò)散的?
今天小編就為大家分享一篇關(guān)于如何理解Java中基類子對(duì)象的構(gòu)建過程從"基類向外"進(jìn)行擴(kuò)散的?,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-04-04Java數(shù)據(jù)結(jié)構(gòu)之雙向鏈表的實(shí)現(xiàn)
相較單鏈表,雙向鏈表除了data與next域,還多了一個(gè)pre域用于表示每個(gè)節(jié)點(diǎn)的前一個(gè)元素。這樣做給雙向鏈表帶來了很多優(yōu)勢(shì)。本文主要介紹了雙向鏈表的實(shí)現(xiàn),需要的可以參考一下2022-10-10java中將一個(gè)List等分成n個(gè)list的工具方法(推薦)
下面小編就為大家?guī)硪黄猨ava中將一個(gè)List等分成n個(gè)list的工具方法(推薦)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-03-03MybatisPlus使用queryWrapper如何實(shí)現(xiàn)復(fù)雜查詢
這篇文章主要介紹了MybatisPlus使用queryWrapper如何實(shí)現(xiàn)復(fù)雜查詢,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。2022-01-01Java調(diào)用WebService服務(wù)的三種方式總結(jié)
雖然WebService這個(gè)框架已經(jīng)過時(shí),但是有些公司還在使用,在調(diào)用他們的服務(wù)的時(shí)候就不得不面對(duì)各種問題,本篇文章總結(jié)了最近我調(diào)用?WebService的心路歷程,3種方式可以分別嘗試,需要的朋友可以參考下2023-08-08MybatisPlus實(shí)現(xiàn)邏輯刪除功能
這篇文章主要介紹了MybatisPlus實(shí)現(xiàn)邏輯刪除功能,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12劍指Offer之Java算法習(xí)題精講N叉樹的遍歷及數(shù)組與字符串
跟著思路走,之后從簡(jiǎn)單題入手,反復(fù)去看,做過之后可能會(huì)忘記,之后再做一次,記不住就反復(fù)做,反復(fù)尋求思路和規(guī)律,慢慢積累就會(huì)發(fā)現(xiàn)質(zhì)的變化2022-03-03