JAVA 註解-學習篇(2)

本文內容承接Java 註解-學習篇(1)http://www.javashuo.com/article/p-ejgfioln-y.htmljava

自定義註解

  1. 聲明 @interface用來聲明一個註解,即在聲明一個類時,把class變成@interface。就能成功聲明一個註解了。
  2. 參數 其中的每個方法其實是聲明瞭一個配置參數。方法的名稱就是參數的名稱,返回值類型就是參數的類型(返回值類型只能是基本類型、Class、String、enum)。能夠經過default來聲明參數的默認值。
  3. 調用 根據元註解規定的範圍,使用@註解名(參數列表)調用。
  4. 應用場景 要用好註解,必須熟悉java 的反射機制,註解的解析徹底依賴於反射

第一個註解

這是一個Marker annotation(類體裏面沒有成員)測試註解。學習

package anotations;

/**
 * 自定義註解
 * Created by Administrator on 2016/11/26.
 */
public @interface Controller {
}

註解的調用,由於沒有規定範圍測試

package controller;

import anotations.Controller;

/**
 * Created by Administrator on 2016/11/26.
 */
@Controller//在類前面
public class ControllerDemo {
    @Controller//在屬性前面
    private String str;
    
    @Controller//在方法前面
    public void say(){
        System.out.println("hello world");
    }
}

###使用元註解修飾 主要使用@Retention、@Target元註解修飾,元註解說明參考http://www.javashuo.com/article/p-ejgfioln-y.html 。下面案例註解能夠在虛擬機中運行,這個主要方便測試,以及解析。.net

import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 自定義註解
 * Created by Administrator on 2016/11/26.
 */
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE})
public @interface Controller {
}

###註解參數 註解中聲明參數,返回值類型只能是基本類型、Class、String、enumcode

package anotations;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 自定義註解
 * Created by Administrator on 2016/11/26.
 */
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE})
public @interface Controller {
    String str();
    int id() default 0;
    Class<Long> gid();
}

調用有參數的註解須要注意;blog

  1. 只有一個參數時,能夠在調用時不使用參數名。
  2. 參數有default值時,能夠在調用時不出如今參數列表中。下面的案例中id列表是能夠不填寫的。
package controller;

import anotations.Controller;

/**
 * Created by Administrator on 2016/11/26.
 */
@Controller(str="test",id=1,gid=Long.class)//在類前面
public class ControllerDemo {
    private String str;

    public void say(){
        System.out.println("hello world");
    }
}

還有最重要的一步,咱們學習註解,就是爲了解析註解,這是最爲核心的一步。請看下一個章節。get

未完待續!!虛擬機

相關文章
相關標籤/搜索