自定義Annotation

一任天然發表於2016-10-14

本文中提供一個自定義註解的例子,只寫了一個用於修飾(類,介面,列舉)的註解,大家可以舉一反三。直接看例子,共有3個類。

Info.java

註解類

/**
 * info註解,用於顯示描述資訊
 */
//RetentionPolicy.RUNTIME - 會保留在class檔案和vm中
@Retention(RetentionPolicy.RUNTIME)
// ElementType.TYPE - 類,介面,列舉的宣告
@Target(ElementType.TYPE)
public @interface Info {
    String info();
}

Phone.java

使用註解的類,用於演示

/**
 * 手機類,用於演示註解使用方法
 */
@Info(info = "我是iPhone7")
public class Phone {
}

Main.java

用於解析註解和執行

package com.rockyguo;

/**
 * 解析註解,並顯示
 */
public class Main {

    public static void main(String[] args) {
        try {
            Class phoneClass = Class.forName("com.rockyguo.Phone");
            if(phoneClass.isAnnotationPresent(Info.class)){
                Info info = (Info)phoneClass.getAnnotation(Info.class);
                System.out.println(info.info());
            }
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }

    }
}

DEMO

下載地址:http://download.csdn.net/detail/yirentianran/9654020

相關文章