一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - Java Annotation Overview詳解

Java Annotation Overview詳解

2019-11-08 14:24java教程網 JAVA教程

這篇文章主要介紹了Java Annotation Overview,需要的朋友可以參考下

JAVA注解概述:

1. 注解是給編譯器看的,這不同于注釋

2. 三個基本的注解:

@Override  告訴編譯器這是在覆寫方法
@Deprecated 告訴編譯器該方法過時了
@SuppressWarnings("unchecked")  不要警告
= (value={"unchecked"})
3. 注解可以用來替代傳統的配置文件
4. JDK5 開始,Java增加了對元數據(MetaData)的支持,即Annotation

自定義注解和反射注解

自定義注解:
1. 新建annotation:(比接口的定義只多了個@符號)

 

復制代碼代碼如下:

public @interface myAnnotation {  
    //屬性  
    String who();  
    int age();  
    String gender();  
}  

 

2. 設置帶默認值的注解

復制代碼代碼如下:

public @interface YouAnnotation {  
    String who() default "tom";  
    int age() default 0;  
    String gender() default "female";  
}  

 

3. 數組情況

復制代碼代碼如下:

public @interface TheyAnnotation {  
    String[] value(); //一定要有()  
}  

 

元Annotation / MetaAnnotation
用來修飾Annotation的。(可以查看@Override的源代碼)

@Retention 注解策略,用于指定該Annotation可以保留的域
RetentionPolicy.CLASS
在字節碼級別有,在運行級別不可見(默認)
RetentionPolicy.RUNTIME
三個層級均可見,運行時可以反射
RetentionPolicy.SOURCE  只在源碼級別上可用,在字節碼級別不可見

@Target  指定注解可以被用在哪些范圍上
@Documented 寫入文檔,在使用javadoc命令寫入html文檔時,該注解一同被寫入
@Inherited  可繼承性,繼承該類的子類依然具有父類該注解的特性

ex.反射注解的方式執行連接數據庫操作:

定義注解如下:

復制代碼代碼如下:

//讓一個注解可以在運行時可以被反射  
@Retention(RetentionPolicy.RUNTIME)  
public @interface DbInfo {  
    String driver() default "com.mysql.jdbc.Driver";  
    String url() default "url = jdbc:mysql://localhost:3306/academic";  
    String password() default "1234";  
    String username() default "root";  
}  

 

反射注解:

復制代碼代碼如下:

@DbInfo  
public static Connection getConnection() throws Exception{  
    //取得該類的字節碼  
    Class clazz = Demo2.class;  
    //取得該類中名為getConnection()的公共方法  
    //參數1:方法名  
    //參數2:方法類型參數對應的字節碼對象,沒有的話,即null  
    Method method = clazz.getMethod("getConnection", null);  
    //通過該方法,取得該方法上定義的注解  
    DbInfo dbInfo = method.getAnnotation(DbInfo.class);  
    String driver = dbInfo.driver();  
    String url = dbInfo.url();  
    String user = dbInfo.username();  
    String password = dbInfo.password();  

    Class.forName(driver);  
    return DriverManager.getConnection(url, user, password);  
}  

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 色呦呦入口 | 国产精品美女福利视频免费专区 | 俄罗斯激情性孕妇孕交大全 | 国产成人精品一区 | ass日本乱妇ass | 911色_911色sss在线观看 | 白白国产永久免费视频 | ipx-177绝对领域在线观看 | 国产自拍啪啪 | 成人福利免费视频 | 欧美一区二区三区四区视频 | 国产 日韩 欧美 综合 | 午夜福利理论片在线播放 | 精品一区视频 | 亚洲欧美日本在线观看 | 久久婷婷丁香五月色综合啪免费 | 97影院3 | 免费叼嘿视频 | 日本乱人伦中文在线播放 | 香蕉91视频 | 高中生喷水喷浆 | 欧美一区二区三区不卡视频 | 天天操精品视频 | 免费理伦片高清在线 | 超逼网| 香蕉eeww99国产精品 | 国产精品久久久久一区二区三区 | 国内外精品免费视频 | 女海盗斯蒂内塔的复仇2免费观看 | 男人机机桶女人 | 好大好猛好爽好深视频免费 | 婚色阿花在线全文免费笔 | 69日本xxxhd| 亚洲娇小videos | 女高h | 日本在线观看视频 | 亚洲视屏在线观看 | 日产2021免费一二三四区 | 校园高h | 久久精品国产色蜜蜜麻豆国语版 | 四虎影视地址 |