Java註解
Java註解是什麼?
在Java中的註解允許將元數據與程序元素相關聯。
程序元素可以是包,類,接口,類的字段,局部變量,方法,方法的參數,枚舉,註解,通用類型/方法聲明中的類型參數等等。
可以在Java程序中註解任何聲明或類型。註解在任何其他修飾符(public,private,final,static等)的程序元素的聲明中用作修飾符。與修飾符不同,註解不會修改程序元素的含義。它是程序元素的註解。
聲明註解類型
聲明註解類型類似於聲明接口類型。註解類型是一種特殊類型的接口類型。使用前面帶有@符號的interface關鍵字來聲明註解類型(注意與聲明接口的區別)。
以下是聲明註解類型的一般語法:
// Annotation type body
}
註解聲明的
註解類型正文放在大括號中。以下代碼創建註解以使用版本信息註解程序元素。
public @interface Version {
int major();
int minor();
}
在上面代碼中的Version註解類型中聲明瞭兩個抽象方法:major()和minor()。註解類型中的抽象方法稱爲元素。註解可以聲明零個或多個元素,它們被聲明爲抽象方法。抽象方法名稱是註解類型的元素的名稱。
在上面的代碼中,Version註解類型聲明瞭兩個元素:major和minor。 兩個元素的數據類型都是int。
如果要導入一個註解類型,那麼它應該就像導入任何其他類型一樣。
註解實例
要創建註解類型的實例並使用它來註解程序元素,使用以下語法:
@annotationType(name1=value1, name2=value2, names3=values3...)
註解類型前面帶有一個@符號,後面是用括號括起來的逗號分隔的name = value對列表。name = value對中的名稱是在註解類型中聲明的元素的名稱和值,它由用戶提供。name = value對不必按照在註釋類型中聲明的順序出現。
以下代碼使用Version類型的註解,主要元素值設置爲1(major=1),次要元素值設置爲0(minor=0)。
@Version(major=1, minor=0)
也可以使用註釋類型的完全限定名,如下代碼 -
@com.java2s.annotation.Version(major=0, minor=1)
可以將類聲明註釋爲 -
@Version(major=1, minor=0)
public class VersionTest {
}
可以將程序元素的註釋與其他修飾符混合使用。
@Version(major=1, minor=0) public class VersionTest {
}
public @Version(major=1, minor=0) class VersionTest {
}
完整的源代碼
@interface Version {
int major();
int minor();
}
@Version(major = 1, minor = 0)
public class Main {
@Version(major = 1, minor = 1)
private int xyz = 110;
@Version(major = 1, minor = 0)
public Main() {
}
@Version(major = 1, minor = 1)
public Main(int xyz) {
this.xyz = xyz;
}
@Version(major = 1, minor = 0)
public void printData() {
}
@Version(major = 1, minor = 1)
public void setXyz(int xyz) {
@Version(major = 1, minor = 2)
int newValue = xyz;
this.xyz = xyz;
}
}