1.3 @Deprecated注解
Java 中 @Deprecated 可以用來(lái)注解類、接口、成員方法和成員變量等,用于表示某個(gè)元素(類、方法等)已過(guò)時(shí)。當(dāng)其他程序使用已過(guò)時(shí)的元素時(shí),編譯器將會(huì)給出警告。
使用 @Deprecated 注解示例代碼如下:
@Deprecated public class Person {@Deprecatedprotected String name;private int age;public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Deprecatedpublic void setNameAndAge(String name, int age) {this.name = name;this.age = age;}@Overridepublic String toString() {return "Person [name=" + name + ", age=" + age + "]";} }上述代碼第 2 行類 Person、第 4 行的成員變量 name 和第 24 行的 setNameAndAge 方法都被 @Deprecated 注解。在 Eclipse 中這些被注解的 API 都會(huì)被畫(huà)上刪除線。調(diào)用這些 API 代碼也會(huì)有刪除線,示例代碼如下。
public class HelloWorld {public static void main(String[] args) {Person p = new Person();p.setNameAndAge("歪比巴卜", 20);p.name = "肉蛋蔥雞";} }在 Eclipse 中代碼顯示如下圖所示。
從圖中可以看到代碼中不僅有刪除線,而且還有編譯警告。
Java 9 為 @Deprecated 注解增加了以下兩個(gè)屬性:
- forRemoval:該 boolean 類型的屬性指定該 API 在將來(lái)是否會(huì)被刪除。
- since:該 String 類型的屬性指定該 API 從哪個(gè)版本被標(biāo)記為過(guò)時(shí)。
示例代碼如下所示:
class Test {// since屬性指定從哪個(gè)版本開(kāi)始被標(biāo)記成過(guò)時(shí),forRemoval指定該API將來(lái)會(huì)被刪除@Deprecated(since = "9", forRemoval = true)public void print() {System.out.println("這里是C語(yǔ)言中文網(wǎng)Java教程!");} } public class DeprecatedTest {public static void main(String[] args) {// 下面使用info()方法時(shí)將會(huì)被編譯器警告new Test().print();} }上面程序的第 12 行代碼使用了 Test 的 print() 方法,而 Test 類中定義 info() 方法時(shí)使用了 @Deprecated 修飾,表明該方法已過(guò)時(shí),所以將會(huì)引起編譯器警告。
@Deprecated 的作用與文檔注釋中的 @deprecated 標(biāo)記的作用基本相同,但它們的用法不同,前者是 Java 5 才支持的注解,無(wú)須放在文檔注釋語(yǔ)法(/** … */部分)中,而是直接用于修飾程序中的程序單元,如方法、類和接口等。
總結(jié)
以上是生活随笔為你收集整理的1.3 @Deprecated注解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 1.2 @Override注解
- 下一篇: 1.4 @SuppressWarning