從JDK5開始,Java增加對元數據的支持,也就是 注解(Annotation) ,注解與注釋是有一定區別的,可以把注解理解為代碼里的特殊標記,這些標記可以在編譯,類加載,運行時被讀取,并執行相應的處理。
java annotation,注釋 ( comment ) 用于注解說明解釋程序的文字就是 注釋 。
注解是JAVA5開始引入的新技術。注解其實就是代碼里的特殊標記,它用于替代配置文件:傳統方式通過配置文件告訴類如何運行,有了注解技術后,開發人員可以通過注解告訴類如何運行。在Java技術里注解的典型應用是:可以通過反射技術去得到類里面的注解,以決定怎么去運行類。
注解的作用:
注解的格式:
注解在哪里使用?
package com.peng.annotation;public class Test {// @Override 就是重寫的注解,一般idea里黃色的字都是注解@Overridepublic String toString() {return super.toString();}
}
內置注解是系統自帶的注解,一般使用較多。
除了直接使用JDK 定義好的注解,我們還可以自定義注解,在JDK 1.5中提供了4個標準的用來對注解類型進行注解的注解類,我們稱之為 meta-annotation(元注解),他們分別是:
@Target
@Retention
@Documented
@Inherited
使用**@interface自定義注解時,自動繼承了java.lang.annotation.Annotation接口,由編譯程序自動完成其他細節。在定義注解時,不能繼承其他的注解或接口。@interface**用來聲明一個注解,其中的每一個方法實際上是聲明了一個配置參數。方法的名稱就是參數的名稱,返回值類型就是參數的類型(返回值類型只能是基本類型、Class、String、enum)。可以通過default來聲明參數的默認值。
定義注解格式:
public @interface 注解名 {定義體}
注解參數的可支持數據類型:
1.所有基本數據類型(int,float,boolean,byte,double,char,long,short)
2.String類型
3.Class類型
4.enum類型
5.Annotation類型
6.以上所有類型的數組
小技巧:當注解只有一個時,且其值名為value,則value可以省略。
package com.peng.annnotation;import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;// 自定義注解
public class Test {// 注解可以顯示賦值, 如果沒有默認值, 就必須給注解復制@MyAnnotation(name = "", age = 18, id = 1, schools = {})// 當注解只有一個時,且其值名為value,則value可以省略@MyAnnotation2("")public void test(){}
}@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@interface MyAnnotation{// 注解的參數: 參數類型 + 參數名();String name() default "";int age() default 18;int id() default -1; //常用小技巧,設置-1表示這項找不到,表示為空。String[] schools() default {"浙江工商大學", "浙江大學"};
}@interface MyAnnotation2{String value();
}
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态