Java標準注解

Java API定義了許多標準注解類型。

以下部分將討論在java.lang包中定義的四種最常用的標準注解。

  • Deprecated
  • Override
  • SuppressWarnings
  • FunctionalInterface

已棄用的注解類型 - Deprecated

棄用的注解類型是標記注解類型。 它標記了已棄用的代碼元素。使用已棄用的程式元素將導致編譯器生成警告。

@Deprecated
class MyClass {
  private MyClass() {
  }

  public static MyClass getInstance() {
    MyClass dt = new MyClass();
    return dt;
  }
}

public class Main {
  public static void main(String[] args) {
    MyClass dt; // Generates a compile-time note
  }
}

覆蓋注解類型 - Override

覆蓋注解類型是只能在方法上使用的標記注解類型。它表示方法覆蓋在其超類中聲明的方法。
如果要覆蓋超類中的一個方法,建議使用@Override注解覆蓋的方法。編譯器將確保注解的方法真正覆蓋超類中的一個方法。

如果注解的方法不覆蓋超類中的方法,編譯器將生成錯誤。

class A {
  public void m1() {
  }
}

class B extends A {
  @Override
  public void m1() {
  }
}

抑制警告注解類型 - SuppressWarnings

抑制警告(SuppressWarnings)注解類型用於抑制命名編譯器警告。它聲明一個名為value的元素,其數據類型是一個String數組。

import java.util.ArrayList;

public class Main {
  @SuppressWarnings("unchecked")
  public void test() {
    @SuppressWarnings("rawtypes")
    ArrayList list = new ArrayList();
    list.add("Hello"); // The compiler issues an unchecked warning
  }
}

功能介面注解類型 - FunctionalInterface

具有一個抽象方法聲明的介面被稱為功能介面( - FunctionalInterface)。如果使用此注解的介面不是函數介面,則會生成編譯時錯誤。

@FunctionalInterface
interface  MyThread{
    void  run();
}

只有抽象方法的介面是一個功能介面,不管它是否用@FunctionalInterface注解。

注解Java包

要注解一個Java包,創建一個名為package-info.java的檔,並將注解包聲明放在這個檔中。以下代碼顯示了package-info.java檔的內容。

// package-info.java
@Version(major=1, minor=0)
package  com.zaixian.annotation;

上一篇: Java注解類型 下一篇: Java注解反射