在Java中,根據註解的使用方法和用途,可將註解分紅3類,分別是
java
內建註解(也稱爲基本註解),定義於java.lang包下數組
元註解(Meta Annotation)app
自定義註解eclipse
在JDK5.0及以上的版本的java.lang包下提供了3種標準的註解類型,分別是ide
@Override:ui
@Deprecatedspa
@SuppressWarnings
code
@Override被用做標方法,它說明了被標的方法重寫了父類的方法。blog
一、它的使用方法很簡單,只要在重寫的子類方法前加上@Override便可,以下代碼所示ip
1
2
3
4
5
|
public
class
Fruit {
public
void
getObjectInfo(){
System.out.println(
"水果的getObjectInfo方法"
);
}
}
|
1
2
3
4
5
6
|
public
class
Apple
extends
Fruit {
@Override
public
void
getObjectInfo() {
System.out.println(
"蘋果重寫水果的getObjectInfo方法"
);
}
}
|
二、若是不是重寫父類的方法,而使用了@Override註解,會在編譯報錯
所以@Override常常用於防止重寫父類方法時方法名拼寫錯誤,
三、另外,特別注意,@Override只能用於修飾方法,而不能用於修飾其餘程序元素!
用於表示某個程序元素(類、方法、成員變量等)已過期,編譯器將再也不喜歡使用這個被標的程序元素。
若是使用(不管是當前類仍是其餘包下的類使用),編譯則會在該程序元素上畫一條斜線,表示程序元素已過期。
@SuppressWarnings註解表示阻止編譯器警告,被用於有選擇地關閉編譯器對類、方法和成員變量等程序元素及其子元素的警告。
@SuppressWarnings會一直做用於該程序元素的全部子元素
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
@SuppressWarnings
({
"unchecked"
,
"rawtypes"
})
public
class
Apple
extends
Fruit {
@Override
public
void
getObjectInfo() {
System.out.println(
"蘋果重寫水果的getObjectInfo方法"
);
}
public
void
printObject(){
Apple apple =
new
Apple();
List list =
new
ArrayList();
list.add(apple);
}
}
|
@SuppressWarnings("unchecked")註解來標識Apple類取消類型檢查編譯器警告
rawtypes:是eclipse 3.6自帶的註解,傳參時也要傳遞帶泛型的參數
deprecation:編譯器將取消使用了過期程序元素的警告
unchecked:取消執行了未檢查的轉換
unused:取消某程序元素未被使用的警告
fallthrough: 取消當swithc 程序塊直接通往下一種狀況而沒有break時的警告
path: 取消在類路徑、源文件路徑等中有不存在的路徑時的警告
serial :取消當在序列化的類上缺乏serialVersionUID定義時的警告
finally :取消當有finally子句不能正常完成時的警告
all: 取消全部狀況的警告
當註解類型裏只有一個value成員變量,使用該註解時能夠直接在註解後的括號中指定value成員變量的值,而無須使用name=value結構對的形式。
當註解類型裏有多個value成員變量,可使用大括號
1
2
3
4
|
@SuppressWarnings
({
"serial"
,
"unchecked"
})
public
class
Apple
extends
Fruit
implements
Serializable{
...
}
|
使用註解時要在其前面加一個「@」符號,同時將註解做爲修飾符使用。
1
|
@+AnnotationName+(..逗號分割的多個name..)
|
其中value值必須爲編譯時常量、內嵌的Annotation或數組。若是註解類型定義了某個NAME的默認值,則這個結構對參數能夠被省略。
1
2
3
4
|
@Override
public
void
getObjectInfo() {
System.out.println(
"蘋果重寫水果的getObjectInfo方法"
);
}
|
1
2
3
4
5
6
|
@SuppressWarnings
(value=
"unused"
)
public
static
void
main(String[] args) {
Apple apple =
new
Apple();
apple.printObject();
List<Apple> apples;
}
|
1
2
3
|
@SuppressWarnings
({
"serial"
,
"unchecked"
})
public
class
Apple
extends
Fruit
implements
Serializable{
}
|