注解

什么是注解

通過反編譯class文件可以看出,注解就是接口胃珍,注解中的屬性就是接口下面的抽象方法

注解作用

用來標(biāo)記某個程序(功能)瘤泪,然后讓其他程序根據(jù)注解信息決定怎么去對待他們

自定義注解

//自定義注解
public @interface MyTest1 {
    String name();
    boolean a() default true;
    int age();
}


public @interface MyTest2 {
    String value();
}

使用注解

//自定義注解的使用
@MyTest1(name = "小明",age = 12)
public class Demo1 {
    @MyTest2("小劉")
    public void eat () {
    }
}

元注解

指的是:修飾注解的注解

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface MyTest2 {
    String value();
}

常見的兩個元注解

@Retention(RetentionPolicy.RUNTIME)
作用:聲明注解的保留周期
1.SOURCE
只作用在源碼階段刃永,字節(jié)碼文件不存在
2.CLASS(默認(rèn)值)
保留到字節(jié)碼文件階段,運行階段不存在
3.RUNTIME(開發(fā)常用)
一直保留到運行階段


@Target(ElementType.METHOD)
作用:聲明被修飾的注解只能用在哪些位置
1.TYPE炫彩,類匾七,接口
2.FIELD,成員變量
3.METHOD媒楼,成員方法
4.PAEAMETER乐尊,方法參數(shù)
5.CONSTRUCTOR,構(gòu)造器
6.LOCAL_VARIABLE划址,局部變量

注解應(yīng)用場景

模擬junt框架
自定義一個注解MyTest扔嵌,用來表示哪些方法需要測試,哪些方法>不需要測試夺颤,加了@MyTest注解的需要測試痢缎,否則不需要測試,
在main函數(shù)中通過反射獲取到加了注解的方法世澜,通過執(zhí)行main方>法独旷,帶有@MyTest注解的也會跟隨者執(zhí)行

import java.lang.reflect.Method;

public class AnnotationTest {
    @MyTest
    public void test1(){
        System.out.println("test1");
    }

    @MyTest
    public void test2(){
        System.out.println("test2");
    }

    //@MyTest
    public void test3(){
        System.out.println("test3");
    }

    //@MyTest
    public void test4(){
        System.out.println("test4");
    }

    public static void main(String[] args) throws Exception {
        AnnotationTest a = new AnnotationTest();
        //啟動程序
        Class c = AnnotationTest.class;//獲取類對象
        Method[] methods = c.getDeclaredMethods();//獲取類下面的所有方法
        //遍歷這個數(shù)組中的每個方法,看上面是否存在@MyTest注解,存在則執(zhí)行該方法
        for (Method method : methods) {
            if (method.isAnnotationPresent(MyTest.class)) {
                //說明當(dāng)前方法上是存在@MyTest注解的嵌洼,觸發(fā)當(dāng)前方法執(zhí)行
                method.invoke(a);//觸發(fā)該方法案疲,invoke該方法需要傳一個對象,隨便傳一個都可以

            }
        }

    }
}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末麻养,一起剝皮案震驚了整個濱河市褐啡,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌鳖昌,老刑警劉巖备畦,帶你破解...
    沈念sama閱讀 221,406評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異许昨,居然都是意外死亡懂盐,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,395評論 3 398
  • 文/潘曉璐 我一進(jìn)店門糕档,熙熙樓的掌柜王于貴愁眉苦臉地迎上來莉恼,“玉大人,你說我怎么就攤上這事翼岁±嗟妫” “怎么了司光?”我有些...
    開封第一講書人閱讀 167,815評論 0 360
  • 文/不壞的土叔 我叫張陵琅坡,是天一觀的道長。 經(jīng)常有香客問我残家,道長榆俺,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,537評論 1 296
  • 正文 為了忘掉前任坞淮,我火速辦了婚禮茴晋,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘回窘。我一直安慰自己诺擅,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 68,536評論 6 397
  • 文/花漫 我一把揭開白布啡直。 她就那樣靜靜地躺著烁涌,像睡著了一般。 火紅的嫁衣襯著肌膚如雪酒觅。 梳的紋絲不亂的頭發(fā)上撮执,一...
    開封第一講書人閱讀 52,184評論 1 308
  • 那天,我揣著相機(jī)與錄音舷丹,去河邊找鬼抒钱。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的谋币。 我是一名探鬼主播仗扬,決...
    沈念sama閱讀 40,776評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼蕾额!你這毒婦竟也來了厉颤?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,668評論 0 276
  • 序言:老撾萬榮一對情侶失蹤凡简,失蹤者是張志新(化名)和其女友劉穎逼友,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體秤涩,經(jīng)...
    沈念sama閱讀 46,212評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡帜乞,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,299評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了筐眷。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片黎烈。...
    茶點故事閱讀 40,438評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖匀谣,靈堂內(nèi)的尸體忽然破棺而出照棋,到底是詐尸還是另有隱情,我是刑警寧澤武翎,帶...
    沈念sama閱讀 36,128評論 5 349
  • 正文 年R本政府宣布烈炭,位于F島的核電站,受9級特大地震影響宝恶,放射性物質(zhì)發(fā)生泄漏符隙。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,807評論 3 333
  • 文/蒙蒙 一垫毙、第九天 我趴在偏房一處隱蔽的房頂上張望霹疫。 院中可真熱鬧,春花似錦综芥、人聲如沸丽蝎。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,279評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽屠阻。三九已至,卻和暖如春消请,著一層夾襖步出監(jiān)牢的瞬間栏笆,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,395評論 1 272
  • 我被黑心中介騙來泰國打工臊泰, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留蛉加,地道東北人。 一個月前我還...
    沈念sama閱讀 48,827評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像针饥,于是被迫代替她去往敵國和親厂抽。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,446評論 2 359

推薦閱讀更多精彩內(nèi)容