詳解JDK 5 Annotation 注解之@Target的用法介紹
前言
目前,越來越多的架構(gòu)設(shè)計在使用注解,例如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ù)上 |
這里重點說明下:ElementType. PACKAGE。它并不是使用在一般的類中,而是用在固定的文件package-info.java中。這里需要強調(diào)命名一定是“package-info”。由于package-info.java并不是一個合法的類,使用eclipse創(chuàng)建類的方式會提示不合法,所以需要以創(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;

重點說明:注解只能在ElementType設(shè)定的范圍內(nèi)使用,否則將會編譯報錯。例如:范圍只包含ElementType.METHOD ,則表明該注解只能使用在類的方法上,超出使用范圍將編譯異常。
相關(guān)文章
spring5 SAXParseException:cvc-elt.1: 找不到元素“beans 的聲明詳解
這篇文章主要給大家介紹了關(guān)于spring5 SAXParseException:cvc-elt.1: 找不到元素“beans 聲明的相關(guān)資料,需要的朋友可以參考下2020-08-08
如何理解Java中基類子對象的構(gòu)建過程從"基類向外"進行擴散的?
今天小編就為大家分享一篇關(guān)于如何理解Java中基類子對象的構(gòu)建過程從"基類向外"進行擴散的?,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-04-04
Java數(shù)據(jù)結(jié)構(gòu)之雙向鏈表的實現(xiàn)
相較單鏈表,雙向鏈表除了data與next域,還多了一個pre域用于表示每個節(jié)點的前一個元素。這樣做給雙向鏈表帶來了很多優(yōu)勢。本文主要介紹了雙向鏈表的實現(xiàn),需要的可以參考一下2022-10-10
java中將一個List等分成n個list的工具方法(推薦)
下面小編就為大家?guī)硪黄猨ava中將一個List等分成n個list的工具方法(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-03-03
MybatisPlus使用queryWrapper如何實現(xiàn)復雜查詢
這篇文章主要介紹了MybatisPlus使用queryWrapper如何實現(xiàn)復雜查詢,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教。2022-01-01
Java調(diào)用WebService服務的三種方式總結(jié)
雖然WebService這個框架已經(jīng)過時,但是有些公司還在使用,在調(diào)用他們的服務的時候就不得不面對各種問題,本篇文章總結(jié)了最近我調(diào)用?WebService的心路歷程,3種方式可以分別嘗試,需要的朋友可以參考下2023-08-08
劍指Offer之Java算法習題精講N叉樹的遍歷及數(shù)組與字符串
跟著思路走,之后從簡單題入手,反復去看,做過之后可能會忘記,之后再做一次,記不住就反復做,反復尋求思路和規(guī)律,慢慢積累就會發(fā)現(xiàn)質(zhì)的變化2022-03-03

