java 自訂註解

來源:互聯網
上載者:User

標籤:

一.自訂註解類

   Target 限制註解的使用範圍  

  TYPE,
  //用於類,介面,枚舉但不能是註解
  FIELD,
  //欄位上,包括枚舉值
  METHOD,
  //方法,不包括構造方法
  PARAMETER,
  //方法的參數
  CONSTRUCTOR,
  //構造方法
  LOCAL_VARIABLE,
  //本地變數或catch語句
  ANNOTATION_TYPE,
  //註解類型(無資料)PACKAGE//Java包

 

 

  

Retention 處理策略

  SOURCE,   //此類型會被編譯器丟棄   CLASS,   //此類型註解會保留在class檔案中,但JVM會忽略它   RUNTIME   //此類型註解會保留在class檔案中,JVM會讀取它
 
@Target(ElementType.FIELD)@Retention(RetentionPolicy.RUNTIME)public @interface Name {    String value() default "蘋果";    }

 

二.使用註解

public class AnnottionTest {        @Name("香蕉")    private String name ;    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }     }

 

三.註解處理類

public class Util {     public static void getInfo(Class<?> clazz){            String strName=" 名稱:";                        Field[] fields = clazz.getDeclaredFields();            for(Field field :fields){                if(field.isAnnotationPresent(Name.class)){                   Name name = (Name) field.getAnnotation(Name.class);                    strName=strName+name.value();                    System.out.println(strName);                }            }        }               @Test     public void fun(){         Util.getInfo(AnnottionTest.class);     }}

 

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.