【java】自訂註解的用法-教程詳解

來源:互聯網
上載者:User
註解

使用@interface自訂註解時,自動繼承了java.lang.annotation.Annotation介面,由編譯器自動完成其他細節。在定義註解時,不能繼承其他的註解或介面。@interface用來聲明一個註解,其中的每一個方法實際上是聲明了一個配置參數。方法的名稱就是參數的名稱,傳回值類型就是參數的類型(傳回值類型只能是基本類型、Class、String、enum)。可以通過default來聲明參數的預設值。
  定義註解格式:
  public @interface 註解名 {定義體}
   註解參數的可支援資料類型:
    1.所有基礎資料型別 (Elementary Data Type)(int,float,boolean,byte,double,char,long,short)
    2.String類型
    3.Class類型
    4.enum類型
    5.Annotation類型
    6.以上所有類型的數組

直接上代碼:

import java.lang.annotation.Documented;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target; /** * 定義一個註解 */@Target(ElementType.METHOD) // 這是一個對方法的註解,還可以是包、類、變數等很多東西@Retention(RetentionPolicy.RUNTIME) // 保留時間,一般註解就是為了架構開發時代替設定檔使用,JVM運行時用反射取參數處理,所以一般都為RUNTIME類型@Documented // 用於描述其它類型的annotation應該被作為被標註的程式成員的公用API,因此可以被例如javadoc此類的工具文檔化public @interface OneAnnotation { // 定義註解的參數,類型可以為基本類型以及String、Class、enum、數組等,default為預設值String parameter1() default "";int parameter2() default -1;

使用註解的類

/** * 一個用到了自訂的註解的類 */public class OneClass {@OneAnnotation(parameter1="YES", parameter2=10000)public void oneMethod () {}

提取註解參數

import java.lang.reflect.Method;  public class TestThis { public static void main(String[] args) throws Exception {// 提取到被註解的方法Method,這裡用到了反射的知識Method method = Class.forName("OneClass").getDeclaredMethod("oneMethod");// 從Method方法中通過方法getAnnotation獲得我們設定的註解OneAnnotation oneAnnotation = method.getAnnotation(OneAnnotation.class);// 得到註解的倆參數System.out.println(oneAnnotation.parameter1());System.out.println(oneAnnotation.parameter2());}

測試結果:

YES

10000

相關文章:

Java自訂註解

Java註解教程及自訂註解

相關視頻:

全面解析Java註解

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.