JDK新特性-----註解@ (@Override、@Deprecated、@SuppressWarings)
阿新 • • 發佈:2018-12-20
註解—@Override 準確覆寫
為什麼會有@Override?
如果子類Student需要覆寫父類Object的toString方法:
class Student
{
public String tostring() //希望覆寫toString,但是並沒有報錯
{
return "學生好好學習";
}
}
public class Annotation
{
public static void main(String[] args)
{
Student s=new Student();
System. out.println(s); //CODE.Java新特性[email protected] 輸出的物件地址,並美有覆寫成功
}
}
可以看出並沒有覆寫成功。 而 @Override 是 當子類覆寫父類方法時,此註解檢查覆寫的方法是否正確宣告,只有滿足覆寫方法要求才會編譯通過,否則編譯出錯。
@Override作用: 當用了@Override 會檢查覆寫方法宣告正確性: 覆寫方法宣告正確不會編譯不會報錯:
註解[email protected] 過期宣告 為什麼要有@Deprecated? 一個很簡單例子,qq從98年開發,到現在有很多版本,但是之前的版本依然可以使用,對於舊版本中的一些類新版本不會刪掉,而是在新版本擴充套件的時候不再去使用這個不建議的類,所以加一個過期的註解(@Deprecated)。
////@Deprecated class Student { private String name; @Deprecated public Student() //宣告該方法不建議使用,但是使用也不會報錯 {} public Student(String name) { this.name=name; } @Deprecated public void print() { System.out.println(this.name); } } public class Annotation { public static void main(String[] args) { Student s1=new Student(); //表示該構造方法不建議使用,但是使用也不會報錯 s1.print(); //null Student s2=new Student("pick"); s2.print(); //表示該方法不建議使用,使用也會實現原本功能 } }
建議使用者不使用原有的類或者方法時,可以在類或方法上@Deprecated表示在當前版本中不推薦使用。 一般過期處理會在原始碼中出現,只要一個名稱上出現一條橫線表明該方法或類被過期處理。
註解[email protected] 壓制警告 首先,呼叫某些操作可能產生問題的時候會出現警告資訊,警告不是錯誤,比如宣告的變數沒有使用,會有警告,當加上@SuppressWarings ,就沒有警告:
///@SuppressWarings 壓制警告
public class Annotation
{
public static void main(String[] args)
{
@SuppressWarnings( "unused" ) //加上壓制警告,就不會有警告
int a; //變數a沒有使用,會有警告
}
}