歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Java注解annotation用法和自定義注解處理器

Java注解annotation用法和自定義注解處理器

日期:2017/3/1 9:56:56   编辑:Linux編程

前言:

在J2EE中,注解使得開發更加便利,省去了生成XML文件的過程,在Hibernate實體聲明中,可以簡簡單單的用幾個注解就可以免去生成一個XML的文件操作。這裡就主要論述一下annotation的用法和自定義注解處理器。當在創建描述符性質的類或接口時,有大量重復性的工作時候,就可以利用注解來實現。

基本語法:

Java目前包括三種標准注解和四種元注解。元注解主要負責注解其他注解的。

三種標准注解:

@Override,表示當前的方法定義覆蓋了父類中的方法。必須要有相同的方法簽名即(方法名,參數類型,參數順序,參數個數)都一樣。否則在編譯過程中發出錯誤提示。

@Deprecated,對不應該再使用的方法添加注解,當使用這個方法的時候,會在編譯時候顯示提示信息。

@SuppressWarnings,關閉不當的編譯器報警信息

四種元注解:

@Target,表示該注解可以用什麼地方。

如CONSTRUCTOR,構造器聲明;FIELD,域聲明;METHOD,方法聲明;TYPE,類,接口或enum聲明

@Retention,表示需要在什麼級別保存該注解信息。

如SOURCE,注解將被編譯器丟棄;CLASS,注解在class文件可用,但會被VM丟棄

RUNTIME,VM將在運行期間也保留注解,可以使用反射機制讀取注解信息

@Documented,將此注解包含到Javadoc中。

@Inherited,允許子類繼承父類的注解。

定義注解:

自定義注解是以@interface為標志的。如同一個接口的定義,這裡面定義的每個方法名,就是使用注解時候的元素名,方法的返回值就是元素的類型,可以利用default來聲明默認值,不過對於非基本類型,不能設置為null為默認值,一般對於字符串使用空字符串作為其默認值。

如下所示:

package whut.annotation;
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)//定義該注解在哪一個級別可用
public @interface UseCase {
//注解元素,可以指定默認值,在使用注解的時候,可以直接給元素賦值如id=5
public int id();
public String description() default "no description";
//利用枚舉來設置參數類型
public enum ParameterType { STRING, SHORT, INT, BOOL, LONG, OBJECT };
// 默認值,在使用注解的時候,只需要為元素賦值
public ParameterType type() default ParameterType.STRING;
}

使用注解:

在類中任意的域值前,或者方法前等直接@注解名,如@UseCase(id=5),使用注解的過程中,必須對於沒有設置默認值的元素進行賦值操作,對於每個元素進行按照名-值對的方式賦值。如果在注解定義中有名為value的元素,並且它是唯一需要賦值的,可以直接在括號裡給出value所需要的值。

注解是不能繼承的。

Copyright © Linux教程網 All Rights Reserved