自定義註解應用小例子

一、自定義註解html

package com.ljb.app.annotation;// 複製到bin目錄下時這個包得刪去
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
 * 自定義代成員註解
 * 能夠修飾類、方法,保存到運行時,在javadoc中生成文檔,子類繼承
 * @author LJB
 * @version 2015年3月4日
 */
@Target({ElementType.TYPE,ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
public @interface MyAnnotation {
 // 有默認值
 String name() default "張三";
 
 // 不帶默認值
 int age();
}

二、使用自定義註解java

package com.ljb.app.annotation;// 複製到bin目錄下時得刪去
/**
 * 測試類
 * @author LJB
 * @version 2015年3月4日
 */
@MyAnnotation(age=19)
public class TestAnnotation {
 
 @MyAnnotation(age=20)
 public void test() {};
}

三、生成javadoc文檔步驟app

3.1    將TestAnnotation.java和MyAnnotation.java複製到jdk的bin目錄下測試

如圖:spa

3.2    在窗口中運行TestAnnotation.javacode

3.3    在bin目錄下找到TestAnnotation.html打開htm

四、使用@Inherited註解,子類將繼承父類的註解繼承

4.1    建立TestAnnotation.java的子類文檔

package com.ljb.app.annotation;
/**
 * 建立TestAnnotation的子類,查看是否繼承父類的註解
 * @author LJB
 * @version 2015年3月5日
 */
public class TestAnnotationSon extends TestAnnotation{
 /**
  * @param args
  */
 public static void main(String[] args) {
  // 利用反射獲取子類使用註解信息
  System.out.println(TestAnnotationSon.class.isAnnotationPresent(MyAnnotation.class));
  
 }
}

運行結果:true    get

標識子類繼承父類註解

五、異常處理

5.1    前面提到默認沒有包,刪除包

5.2    第2種異常

處理方法:改變字符集

 運行正常:

相關文章
相關標籤/搜索