亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

java的注解annotation

2019-11-14 10:15:38
字體:
來源:轉載
供稿:網友

用處

1:生成文檔

常用的有@see @param @return 等:2:跟蹤代碼依賴性,實現替代配置文件功能。比較常見的是sPRing 2.5 開始的基于注解配置。作用就是減少配置。現在的框架基本都使用了這種配置來減少配置文件的數量。以后java的程序開發,最多的也將實現注解配置,具有很大用處;3:”在編譯時進行格式檢查。

如@override 放在方法前,如果你這個方法并不是覆蓋了超類方法,則編譯時就能檢查出。

api:

1:<T extends Annotation> T getAnnotation(Class<T> annotationClass): 返回改程序元素上存在的、指定類型的注解,如果該類型注解不存在,則返回null:

2:Annotation[] getAnnotations():返回該程序元素上存在的所有注解。3:boolean isAnnotationPresent(Class<?extends Annotation> annotationClass):判斷該程序元素上是否包含指定類型的注解,存在則返回true,否則返回false.:

4:Annotation[] getDeclaredAnnotations():返回直接存在于此元素上的所有注釋。與此接口中的其他方法不同,該方法將忽略繼承的注釋。(如果沒有注釋直接存在于此元素上,則返回長度為零的一個數組。)該方法的調用者可以隨意修改返回的數組;這不會對其他調用者返回的數組產生任何影響。

demo1:

/******************************************************************************* ******************************************************************************/package test.annotation.field;import java.lang.annotation.Documented;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;/** * 水果顏色注解 *  * @author peida */@Target(ElementType.FIELD)@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface FruitColor {	/**	 * 顏色枚舉	 */	public enum Color {		BULE, RED, GREEN	};	/**	 * 顏色屬性	 * 	 * @return	 */	Color fruitColor() default Color.GREEN;}/******************************************************************************* ******************************************************************************/package test.annotation.field;import java.lang.annotation.Documented;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;/** * 水果名稱注解 */@Target(ElementType.FIELD)@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface FruitName {	String value() default "";}/******************************************************************************* ******************************************************************************/package test.annotation.field;import java.lang.annotation.Documented;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;/** * 水果供應者注解 */@Target(ElementType.FIELD)@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface FruitProvider {	/**	 * 供應商編號	 * 	 * @return	 */	public int id() default -1;	/**	 * 供應商名稱	 * 	 * @return	 */	public String name() default "";	/**	 * 供應商地址	 * 	 * @return	 */	public String address() default "";}/******************************************************************************* ******************************************************************************/package test.annotation.field;import test.annotation.field.FruitColor.Color;public class Apple {	@FruitName("Apple")	private String appleName;	@FruitColor(fruitColor = Color.RED)	private String appleColor;	@FruitProvider(id = 1, name = "陜西紅富士集團", address = "陜西省西安市延安路89號紅富士大廈")	private String appleProvider;}/******************************************************************************* ******************************************************************************/package test.annotation.field;import java.lang.reflect.Field;public class AnnotationFiledTest {	/**	 * @param args	 */	public static void main(final String[] args) {		getFruitInfo(Apple.class);	}	public static void getFruitInfo(final Class<?> clazz) {		String strFruitName = " 水果名稱:";		String strFruitColor = " 水果顏色:";		String strFruitProvicer = "供應商信息:";		final Field[] fields = clazz.getDeclaredFields();		for (final Field field : fields) {			if (field.isAnnotationPresent(FruitName.class)) {				final FruitName fruitName = field.getAnnotation(FruitName.class);				strFruitName = strFruitName + fruitName.value();				System.out.println(strFruitName);			} else if (field.isAnnotationPresent(FruitColor.class)) {				final FruitColor fruitColor = field.getAnnotation(FruitColor.class);				strFruitColor = strFruitColor + fruitColor.fruitColor().toString();				System.out.println(strFruitColor);			} else if (field.isAnnotationPresent(FruitProvider.class)) {				final FruitProvider fruitProvider = field.getAnnotation(FruitProvider.class);				strFruitProvicer = strFruitProvicer + fruitProvider.id() + ";" + fruitProvider.name() + ";" + fruitProvider.address();				System.out.println(strFruitProvicer);			}		}	}} 水果名稱:Apple 水果顏色:RED供應商信息:1;陜西紅富士集團;陜西省西安市延安路89號紅富士大廈

demo2:

/******************************************************************************* ******************************************************************************/package test.annotation.method;import java.lang.annotation.Documented;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;/** * 定義一個注解 */@Target(ElementType.METHOD)// 這是一個對方法的注解,還可以是包、類、變量等很多東西@Retention(RetentionPolicy.RUNTIME)// 保留時間,一般注解就是為了框架開發時代替配置文件使用,JVM運行時用反射取參數處理,所以一般都為RUNTIME類型@Documented// 用于描述其它類型的annotation應該被作為被標注的程序成員的公共API,因此可以被例如javadoc此類的工具文檔化public @interface OneAnnotation {	// 定義注解的參數,類型可以為基本類型以及String、Class、enum、數組等,default為默認值	String parameter1() default "";	int parameter2() default -1;}/******************************************************************************* ******************************************************************************/package test.annotation.method;/** * 一個用到了自定義的注解的類 */public class OneClass {	@OneAnnotation(parameter1 = "YES", parameter2 = 10000)	public void oneMethod() {	}}/******************************************************************************* ******************************************************************************/package test.annotation.method;import java.lang.reflect.Method;public class AnnotationMethodTest {	public static void main(final String[] args) throws Exception {		// 提取到被注解的方法Method,這里用到了反射的知識		final Method method = Class.forName("test.annotation.method.OneClass").getDeclaredMethod("oneMethod");		// 從Method方法中通過方法getAnnotation獲得我們設置的注解		final OneAnnotation oneAnnotation = method.getAnnotation(OneAnnotation.class);		// 得到注解的倆參數		System.out.println("para1: " + oneAnnotation.parameter1());		System.out.println("para2: " + oneAnnotation.parameter2());	}}para1: YESpara2: 10000

。


上一篇:PAT甲級1021

下一篇:C語言逗號運算符

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品极品美女在线观看免费| 国产在线观看精品| 久久久午夜视频| 国产精品成人免费视频| 亚洲精品丝袜日韩| 久久69精品久久久久久国产越南| 色综久久综合桃花网| 亚洲综合一区二区不卡| 欧美亚洲一区在线| 精品视频9999| 国产成人高清激情视频在线观看| 69av视频在线播放| 成人h片在线播放免费网站| 国产亚洲精品综合一区91| 91精品视频免费观看| 日本久久91av| 大胆人体色综合| 国产精品久久久| 91天堂在线观看| 午夜精品久久久久久久99热浪潮| 91久久精品国产91久久| 久久久精品久久| 久久色免费在线视频| 亚洲视频在线观看视频| 成人伊人精品色xxxx视频| 国产精品www网站| 国产91露脸中文字幕在线| 中文字幕欧美日韩| 在线精品国产欧美| 影音先锋欧美精品| 91在线免费看网站| 亚洲国产精久久久久久| 久久99热精品这里久久精品| 亚洲一级一级97网| 精品女同一区二区三区在线播放| 欧美午夜精品久久久久久浪潮| 最近中文字幕2019免费| 成人国内精品久久久久一区| 欧美一区二区影院| 久久久国产一区二区| 第一福利永久视频精品| 欧美一区视频在线| 尤物tv国产一区| 中文字幕日韩视频| 亚洲第一中文字幕| 欧美激情精品久久久久久大尺度| 精品国产91久久久久久| 国产精品啪视频| 97欧美精品一区二区三区| 国产精品久久久久久亚洲影视| 欧美激情免费在线| 久久久久久久久网站| 国产精品久久久精品| 91精品久久久久| 欧美日韩免费区域视频在线观看| 亚洲国产精品va在线看黑人| 日韩精品在线观看网站| 黑人精品xxx一区| 日本中文字幕不卡免费| 在线亚洲欧美视频| 欧美日韩成人精品| 精品久久久国产| 日本免费一区二区三区视频观看| 日韩欧美在线第一页| 日韩国产激情在线| 亚洲欧美综合精品久久成人| 国产精品中文久久久久久久| 亚洲激情国产精品| 日韩电影免费观看中文字幕| 亚洲国产精品久久精品怡红院| 亚洲人成电影网站色xx| 国产成人97精品免费看片| 国产精品成人播放| 激情av一区二区| 77777亚洲午夜久久多人| 亚洲va欧美va国产综合久久| 欧美日韩精品二区| 成人久久精品视频| 国产精品久久久久福利| 久久久国产精彩视频美女艺术照福利| 日韩av在线免费观看一区| 亚洲男人第一av网站| 91精品国产成人www| 亚洲免费一在线| 九九热这里只有在线精品视| 亚洲xxx大片| 国产盗摄xxxx视频xxx69| 亚洲欧美一区二区精品久久久| 国产成人91久久精品| 日韩女优人人人人射在线视频| 日韩欧美精品中文字幕| 欧美日韩国产精品一区二区不卡中文| 欧美午夜激情小视频| 国产69久久精品成人| 国产视频亚洲视频| 精品丝袜一区二区三区| 久久久久九九九九| 久久免费视频在线观看| 亚洲视频在线视频| 亚州精品天堂中文字幕| 深夜福利国产精品| 欧美精品制服第一页| 亚洲第一精品夜夜躁人人爽| 欧美区二区三区| 国产成人精品视频在线| 国产精品欧美久久久| 日韩精品在线播放| 久久久久久噜噜噜久久久精品| 中国日韩欧美久久久久久久久| 日韩av在线网页| 国产精品视频免费在线观看| 最近2019中文字幕mv免费看| 中文字幕一精品亚洲无线一区| 欧美一区二区影院| 91亚洲精华国产精华| 亚洲国产福利在线| 国产精品视频一区二区高潮| 亚洲夜晚福利在线观看| 中文字幕亚洲一区二区三区五十路| 日韩中文字幕国产精品| 欧美成年人视频网站欧美| 日韩电影在线观看免费| 国产精品久久久久77777| 国产亚洲视频中文字幕视频| 久久免费高清视频| 欧美日韩人人澡狠狠躁视频| 亚洲美女免费精品视频在线观看| 欧美午夜激情在线| 成人性生交大片免费看小说| 69国产精品成人在线播放| 久久精品中文字幕免费mv| 91tv亚洲精品香蕉国产一区7ujn| 欧美成人黄色小视频| 国产精品久久久久91| 精品久久久久久久久久久久| 亚洲免费高清视频| 亚洲人a成www在线影院| 国产成人在线播放| 亚洲а∨天堂久久精品喷水| 日韩高清不卡av| 亚洲男人天天操| 成人免费福利视频| 日韩中文第一页| 国产成人精彩在线视频九色| 狠狠做深爱婷婷久久综合一区| 亚洲国产97在线精品一区| 91精品国产91久久| 欧美日韩国产综合视频在线观看中文| 亚洲精品国产精品国自产观看浪潮| 亚洲欧洲美洲在线综合| 国产亚洲精品美女久久久| 成人h视频在线| 国产精品综合网站| 日韩在线高清视频| 亚洲成人黄色在线| 97视频免费看| 北条麻妃一区二区三区中文字幕| 久久久999成人| 欧美裸体xxxx极品少妇| 欧美日本中文字幕| 亚洲人线精品午夜| 超碰日本道色综合久久综合| 亚洲男人天堂网| 欧美黄色小视频|