国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

Java Annotation Overview詳解

2019-11-26 15:40:45
字體:
來源:轉載
供稿:網友

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); 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 渭南市| 土默特左旗| 肇州县| 汤阴县| 九台市| 江山市| 文成县| 武威市| 峡江县| 安丘市| 甘南县| 黔西| 南昌县| 三台县| 罗山县| 钦州市| 饶平县| 枣庄市| 玉环县| 兰西县| 巍山| 广安市| 张家界市| 扎赉特旗| 宣化县| 松滋市| 阳曲县| 曲阳县| 天镇县| 招远市| 庆云县| 石棉县| 渝北区| 邛崃市| 萨嘎县| 巍山| 长治县| 莱州市| 丹江口市| 闻喜县| 太仓市|