跟王老師學註解(二)註解的分類及內建註解

跟王老師學註解(二):註解的分類及內建註解

主講教師:王少華   QQ羣號:483773664

一、註解的分類

在Java中,根據註解的使用方法和用途,可將註解分成3類,分別是

內建註解(也稱爲基本註解),定義於java.lang包下

元註解(Meta Annotation)

自定義註解

二、內建註解

(一)分類

在JDK5.0及以上的版本的java.lang包下提供了3種標準的註解類型,分別是

@Override:

@Deprecated

@SuppressWarnings


(二)@Override

@Override被用作標方法,它說明了被標的方法重寫了父類的方法。

1、它的使用方法很簡單,只要在重寫的子類方法前加上@Override即可,如下代碼所示

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方法");
    }
}

2、如果不是重寫父類的方法,而使用了@Override註解,會在編譯報錯


因此@Override經常用於防止重寫父類方法時方法名拼寫錯誤,

3、另外,特別注意,@Override只能用於修飾方法,而不能用於修飾其他程序元素!


(三)@Deprecated註解

用於表示某個程序元素(類、方法、成員變量等)已過時,編譯器將不再喜歡使用這個被標的程序元素。

如果使用(無論是當前類還是其他包下的類使用),編譯則會在該程序元素上畫一條斜線,表示程序元素已過時。


(四)、@SuppressWarning註解

1、@SuppressWarning註解

@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自帶的註解,傳參時也要傳遞帶泛型的參數

2、當@SuppressWarnings後面的括號中的value值爲如下參數時,編譯器將取消相應的警告

deprecation:編譯器將取消使用了過時程序元素的警告

unchecked:取消執行了未檢查的轉換

unused:取消某程序元素未被使用的警告

fallthrough: 取消當swithc 程序塊直接通往下一種情況而沒有break時的警告

path: 取消在類路徑、源文件路徑等中有不存在的路徑時的警告

serial :取消當在序列化的類上缺少serialVersionUID定義時的警告

finally :取消當有finally子句不能正常完成時的警告

all: 取消所有情況的警告

3、使用@SuppressWarnings的參數

當註解類型裏只有一個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{
}















發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章