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](https://github.com/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](https://github.com/FunctionalInterface "@FunctionalInterface")
註解。
註解Java包
要註解一個Java包,創建一個名爲package-info.java
的文件,並將註解包聲明放在這個文件中。以下代碼顯示了package-info.java
文件的內容。
// package-info.java
@Version(major=1, minor=0)
package com.yiibai.annotation;