Annotation

註解:	Annotation
	1、內置註解:常見的三種內置註解
		1)、@Override	表示長些超類中的方法
		2)、@Deprecated	表示不建議使用的元素
		3)、SuppressWarnings	表示抑制程序中的一些警告
	2、元註解(meta-annotation):java.lang.annotion中定義了4個標準的元註解,(前兩個常用)
		1)、@Target	表示註解的使用地點
		2)、@Retention		註解可以被讀取的範圍
		3)、@Documented
		4)、@Inherited
		
自定義註解格式:


		元註解(作用是來解釋自定義註解)
		public	@interface  類名{
			參數
		}
		
注意事項:
		1、自定義註解時通常需要指定default值,如0,“”(空字符串),-1(表示不存在)
		2、如果不指定默認值,使用時就要添加,否者報錯
		3、如果自定義註解只有一個參數,建議起名爲value
		4、注意一下參數的形式 eg:String[] value() 看起來想函數,其實表示字符串數組

package com.chen.annotation01;

import java.util.Date;

/**
 * 認識一下常用的一些註解
 * @author Administrator
 *
 */
public class Demo01 {

	// 重寫方法
	@Override
	public String toString() {

		return "我重寫的";
	}
	
	
	public static void main(String[] args) {
		
		Date data = new Date();
		// 不建議使用的方法
		data.parse("dsacd");
		
	}
	
	
	@SuppressWarnings(value = { "all" })// value參數除了all外還有:deprecation、unchecked、finally....
	public void test01() {
		
		Date data = new Date();
		// 這裏就不警告了
		data.parse("dsacd");
	}
}

package com.chen.annotation01;

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

/**
 * 自定義註解
 * @author Administrator
 *
 */
@Target(value = {ElementType.FIELD, ElementType.METHOD})// 適用於註解方法和屬性,還有其他類型
@Retention(value = RetentionPolicy.RUNTIME)// 還有其他兩種類型CLASS、SOURCE 但這種作用範圍最廣
public @interface MyAnnotation {

	String str() default "";
	int id() default 0;
	int x() default -1;
	String[] value();
}

package com.chen.annotation01;
/**
 * 測試自定義註解
 * @author Administrator
 *
 */
//報錯,因爲@MyAnnotation定義爲只能用於方法和屬性前面
//@MyAnnotation(id = 1, value = { "aaa" })
public class TestMyAnnotation {

	public static void main(String[] args) {
		
		
	}
	
	@MyAnnotation(id = 1, value = { "aaa" })// 由於value沒有設置默認值,這裏就必須指定
	public static void test01() {
		
	}
}


發佈了44 篇原創文章 · 獲贊 9 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章