Java千百問_03基礎語法(019)_註解是什麼

點擊進入_更多_Java千百問

1、註解是什麼

java中的註解(Annotation),也叫元數據。是Java 5以後版本引入的一個特性。

註解與類、接口、枚舉是在同一個層次,可以用來標註包、類、字段、方法、局部變量、方法參數等元素,達到對這些元素的描述和說明

註解是可以允許jvm在運行中讀取它,這一點與註釋完全不同。並且包含多種加載策略,可以靈活配置。

瞭解註解、註釋區別看這裏:註解、註釋有什麼區別
如何自定義註解看這裏:如何使用註解

2、註解有哪些加載策略

註解包含3中可配置的加載策略(RetentionPolicy),根據不同的需要進行不同的配置,具體如下:

public enum RetentionPolicy {
    // 此類型會被編譯器丟棄
    SOURCE,
    // 此類型註解會保留在class文件中,但JVM會忽略它,默認策略
    CLASS,
    // 此類型註解會保留在class文件中,JVM會讀取它
    RUNTIME
}

3、註解有什麼作用

註解主要功能有以下幾點:

  1. 編寫文檔
    通過代碼裏標識的元數據生成文檔,這一點與註釋類似。

  2. 代碼分析
    通過代碼裏標識的元數據對代碼進行分析,一般使用反射獲取註解信息。

  3. 編譯檢查
    通過代碼裏標識的元數據讓編譯器能夠實現基本的編譯檢查,例如方法覆蓋@Override。

4、JDK有那些內置註解

jdk提供了若干內置註解,常見的如下:

@Override

它用來對覆蓋父類方法、實現接口方法進行標記,如果被標記的方法並沒有實際覆蓋父類方法,則編譯器會發出錯誤警告。
例子:

public class SuperTest {
    public String tostring() {
        return "父類";
    }
}

public class Test extends SuperTest {
    @Override
    public String tostring() {
        return "子類註解";
    }
}

@Deprecated

它用來標記過期方法、不推薦使用方法。對於某些已經過期、不推薦使用的方法,但又不能直接刪除(有其他地方仍使用),我們會使用@Deprecated進行標記,當使用這些方法時,會在編譯時進行提示

例子:

public class Test {
    public static void main(String[]args) {
        // 使用DeprecatedClass裏聲明被過時的方法
        DeprecatedClass.DeprecatedMethod();
    }
}

class DeprecatedClass {

    @Deprecated
    public static void DeprecatedMethod() {
    }
}

@SuppressWarnings

它用來標記不想被提示的警告,警告類型可以通過參數控制,具體如下:

deprecation,使用了過時的類或方法時的警告
unchecked,執行了未檢查的轉換時的警告
fallthrough,當Switch程序塊直接通往下一種情況而沒有Break時的警告
path,在類路徑、源文件路徑等中有不存在的路徑時的警告
serial,當在可序列化的類上缺少serialVersionUID定義時的警告
finally,任何finally子句不能正常完成時的警告
all,關於以上所有情況的警告

例子:

public class Test {

    public static Listlist = newArrayList();

    @SuppressWarnings("unchecked")
    public void add(String data) {
        list.add(data);
    }
}
發佈了202 篇原創文章 · 獲贊 308 · 訪問量 77萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章