定義一個annotationcode
/* * @interface用來定義註解,註解不能繼承其餘的註解或接口。註解中的每個方法其實是聲明瞭一個配置參數。方法的名稱就是參數的名稱, * 返回值類型就是參數的類型(返回值類型只能是基本類型、Class、String、enum)。能夠經過default來聲明參數的默認值。 */ /** * @Target 用於描述註解的使用範圍(即:被描述的註解能夠用在什麼地方) * ElementType.CONSTRUCTOR 用於描述構造器 * ElementType.FIELD 用於描述域 * ElementType.LOCAL_VARIABLE 用於描述局部變量 * ElementType.METHOD 用於描述方法 * ElementType.PACKAGE 用於描述包 * ElementType.PARAMETER 用於描述參數 * ElementType.TYPE 用於描述類、接口(包括註解類型) 或enum聲明 */ /** * @Retention 表示須要在什麼級別保存該註釋信息,用於描述註解的生命週期(即:被描述的註解在什麼範圍內有效) * RetentionPolicy.SOURCE 在源文件中有效(即源文件保留) * RetentionPolicy.CLASS 在class文件中有效(即class保留) * RetentionPolicy.RUNTIME 在運行時有效(即運行時保留) */ @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) public @interface Annotation { public String value() default "默認值"; //定義一個類型爲String的參數,名叫value }
取得annotation註釋對象
public class AnnotationTest { @MethodAnnotation(value="myMethod 的方法",name="myMethod方法") public void myMethod(){} }
如上在myMethod方法中取得MethodAnnotation對象繼承
AnnotationTest test = new AnnotationTest(); Method method = test.getClass().getMethod("myMethod", null); MethodAnnotation methodAnnotation = method.getAnnotation(MethodAnnotation.class);