程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java Annotation Overview詳解

Java Annotation Overview詳解

編輯:關於JAVA

Java Annotation Overview詳解。本站提示廣大學習愛好者:(Java Annotation Overview詳解)文章只能為提供參考,不一定能成為您想要的結果。以下是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); 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved