1. 程式人生 > >JDK新特性-----註解@ (@Override、@Deprecated、@SuppressWarings)

JDK新特性-----註解@ (@Override、@Deprecated、@SuppressWarings)

註解—@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沒有使用,會有警告
    }
}