本文內容承接Java 註解-學習篇(1)http://www.javashuo.com/article/p-ejgfioln-y.htmljava
這是一個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
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
未完待續!!虛擬機