簡體   English   中英

具有@Deprecated注釋的類意味着將自動棄用所有方法和字段

[英]Class with @Deprecated annotation means that all methods and fields automatically will be deprecated

有人知道帶有@Deprecated注釋的類@Deprecated意味着所有方法和字段都會被棄用。?

來自JLS 9.6.3.6。 @Deprecated

至少eclipse沒有顯示Deprecated類的Deprecated方法。

不,如果你這樣做

@Deprecated
class Old {
     public void foo () {}
}

當你引用那個課時:

()包含.foo()

只要

將被標記為已棄用。

如果說我用@Deprecated注釋了類VO

@Deprecated
class VO {
  private String name ;
  public void setName(String name) {
    this.name = name;
  }
  public String getName() {
    return name;
  }
}

然后 :

VO v = new VO(); //這里警告

v.getName(); // no warning

這意味着該類已被棄用。 因此,使用該類型將顯示警告。

嗯,規范說這個:

當使用注釋@Deprecated注釋聲明的類型[..]時,Java編譯器必須產生棄用警告(即被覆蓋,調用或通過名稱引用),[...]

因此嚴格地說 ,在不推薦使用該類型的對象調用方法不需要產生警告(因為“重寫”和“調用”只能引用方法或構造函數,並且類不會被名稱引用)。 然而, 聲明該對象必須提供警告。

但是,沒有任何說明不允許編譯器提供更多警告。 在我看來,假設棄用類的所有方法都應被視為已棄用是合理的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM