欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java注解的全面分析

 更新時(shí)間:2017年08月04日 10:19:15   作者:大白能  
這篇文章主要介紹了java注解的全面分析的相關(guān)資料,Java提供的一種原程序中的元素關(guān)聯(lián)任何信息和任何元數(shù)據(jù)的途徑和方法,需要的朋友可以參考下

全面解析java注解

Java中的常見(jiàn)注解

a.JDK中的注解

    @Override 覆蓋父類或者父接口的方法
    @Deprecated 表示方法已經(jīng)過(guò)時(shí)
    @SuppressWarnings("deprecation") 忽略方法過(guò)時(shí)警告

b.常見(jiàn)的第三方注解

    例如Spring中的@Autowired(自動(dòng)注入)

注解的分類

a.按照運(yùn)行機(jī)制分

    1.源碼注解
        注解只在源碼中存在,編譯成class文件就不存在了

    2.編譯時(shí)注解
        注解在源碼和class文件中都存在
        eg:@Override、@Deprecated、@SuppressWarnings

    3.運(yùn)行時(shí)注解
        在運(yùn)行階段還起作用,甚至?xí)绊戇\(yùn)行邏輯
        eg:@Autowired

b.按照來(lái)源分

    1.來(lái)自JDK的注解
    2.來(lái)自第三方的注解
    3.自定義注解

c.元注解:注解的注解

自定義注解

1.自定義注解的語(yǔ)法要求

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target({ElementType.METHOD,ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Inherited
@Documented
public @interface Description {
  String desc();
  String author();
  int age() default 18;
}

注意:

  • 使用@interface關(guān)鍵字定義注解
  • 成員以無(wú)參無(wú)異常方式聲明
  • 可以用default為成員指定一個(gè)默認(rèn)值
  • 成員類型是受限的,合法的類型包括原始類型以及String、Class、Annotation、Enumeration
  • 如果注解只有一個(gè)成員,則成員名必須取名為value(),在使用時(shí)可以忽略成員名和賦值號(hào)(=)
  • 注解類可以沒(méi)有成員,沒(méi)有成員的注解稱為標(biāo)識(shí)注解

2.元注解

a.@Target({ElementType.METHOD,ElementType.TYPE})

注解的作用域:

  • ElementType.CONSTRUCTOR 構(gòu)造方法聲明
  • ElementType.FIELD 字段聲明
  • ElementType.LOCAL_VARIABLE 局部變量聲明
  • ElementType.METHOD 方法聲明
  • ElementType.PACKAGE 包聲明
  • ElementType.PARAMETER 參數(shù)聲明
  • ElementType.TYPE 類、接口

b.@Retention(RetentionPolicy.RUNTIME)

注解的生命周期:

  • RetentionPolicy.SOURCE 只在源碼顯示,編譯時(shí)會(huì)丟棄
  • RetentionPolicy.CLASS 編譯時(shí)會(huì)記錄到class中,運(yùn)行時(shí)忽略
  • RetentionPolicy.RUNTIME 運(yùn)行時(shí)存在,可以通過(guò)反射讀取

c.@Inherited

標(biāo)識(shí)性的元注解:允許子類繼承

d.@Documented

生成javadoc時(shí)會(huì)包含注解

使用自定義注解
語(yǔ)法:@注解名(成員1=成員值1,成員2=成員值2)

@Description(desc="I am demo",author="boy",age=18)
public void demo(){}

解析注解

概念:通過(guò)反射獲取類、函數(shù)或成員上的運(yùn)行時(shí)注解信息,從而實(shí)現(xiàn)動(dòng)態(tài)控制程序運(yùn)行的邏輯

以上就是java 注解的實(shí)例詳解,如有疑問(wèn)請(qǐng)留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

最新評(píng)論