1.3 @Deprecated注解
生活随笔
收集整理的這篇文章主要介紹了
1.3 @Deprecated注解
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Java 中 @Deprecated 可以用來注解類、接口、成員方法和成員變量等,用于表示某個元素(類、方法等)已過時。當其他程序使用已過時的元素時,編譯器將會給出警告。
使用 @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 都會被畫上刪除線。調用這些 API 代碼也會有刪除線,示例代碼如下。
public class HelloWorld {public static void main(String[] args) {Person p = new Person();p.setNameAndAge("歪比巴卜", 20);p.name = "肉蛋蔥雞";} }在 Eclipse 中代碼顯示如下圖所示。
從圖中可以看到代碼中不僅有刪除線,而且還有編譯警告。
Java 9 為 @Deprecated 注解增加了以下兩個屬性:
- forRemoval:該 boolean 類型的屬性指定該 API 在將來是否會被刪除。
- since:該 String 類型的屬性指定該 API 從哪個版本被標記為過時。
示例代碼如下所示:
class Test {// since屬性指定從哪個版本開始被標記成過時,forRemoval指定該API將來會被刪除@Deprecated(since = "9", forRemoval = true)public void print() {System.out.println("這里是C語言中文網Java教程!");} } public class DeprecatedTest {public static void main(String[] args) {// 下面使用info()方法時將會被編譯器警告new Test().print();} }上面程序的第 12 行代碼使用了 Test 的 print() 方法,而 Test 類中定義 info() 方法時使用了 @Deprecated 修飾,表明該方法已過時,所以將會引起編譯器警告。
@Deprecated 的作用與文檔注釋中的 @deprecated 標記的作用基本相同,但它們的用法不同,前者是 Java 5 才支持的注解,無須放在文檔注釋語法(/** … */部分)中,而是直接用于修飾程序中的程序單元,如方法、類和接口等。
總結
以上是生活随笔為你收集整理的1.3 @Deprecated注解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1.2 @Override注解
- 下一篇: 1.4 @SuppressWarning