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

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

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

1、註解的分類

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

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

元註解(Meta Annotation)app

自定義註解eclipse

2、內建註解

(一)分類

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

@Override:ui

@Deprecatedspa

@SuppressWarnings
code


(二)@Override

@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只能用於修飾方法,而不能用於修飾其餘程序元素!


(三)@Deprecated註解

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

若是使用(不管是當前類仍是其餘包下的類使用),編譯則會在該程序元素上畫一條斜線,表示程序元素已過期。


(四)、@SuppressWarning註解

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

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

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

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

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

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

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

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

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

all: 取消全部狀況的警告

三、使用@SuppressWarnings的參數

當註解類型裏只有一個value成員變量,使用該註解時能夠直接在註解後的括號中指定value成員變量的值,而無須使用name=value結構對的形式。


當註解類型裏有多個value成員變量,可使用大括號

1
2
3
4
@SuppressWarnings ({ "serial" , "unchecked" })
public class Apple extends Fruit implements Serializable{
...
}

3、註解的語法

使用註解時要在其前面加一個「@」符號,同時將註解做爲修飾符使用。

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{
}













相關文章
相關標籤/搜索