Annotation能夠說是整個JDK發展的一項重要技術,由於從如今的開發來講Annotation使用普遍服務器
若是想要理解Annotation做用,對於項目的開發,會經歷3個過程ide
1.在進行軟件開發的過程當中,會將全部使用到的第三方信息和操做都寫在程序裏;工具
若是如今忽然假設你服務器地址更換了,你就須要更改程序源代碼,而這個工程就至關龐大了, 開發工具
2.使用一個配置文件,程序在運行的時候要經過配置文件讀取相關的配置操做spa
若是此時要想更改配置,也就是能夠在不修改源代碼的前提下事項目的變動。code
當使用配置文件後,雖然代碼的維護方便了,可是開發確實不方便,另外,這些配置文件若是是非專業人士很難去修改,而且會形成一個可怕的事情;一個項目的配置文件可能會很是多。 因此咱們一旦進行修改的時候那麼配置文件的數量龐大會直接形成開發者的暈眩。因而JDK提供一個新的作法,將配置寫入程序裏面,這樣就造成註解的概念。blog
可是須要提醒的是,並非說寫了註解以後就能夠不使用配置文件了,事實上配置文件如今依然存在,只不過少了。本次要看3個JDK內置的註解:@Override @Deprecated @SuppressWarnings 繼承
方法覆寫:發如今繼承關係之中,子類定義了與父類方法名稱相同 參數類型及個數 返回值類型相同的時候稱爲覆寫,被覆寫的方法不可以擁有比父類更爲嚴格的訪問權限,ip
範例:觀察問題開發
1 package cn.Tony.demo; 2 3 class Person{ 4 public String toString() { 5 return "是一我的"; 6 } 7 } 8 public class TestDemo { 9 public static void main(String[] args) { 10 System.out.println(new Person()); 11 } 12 }
這個時候不叫覆寫,屬於本身定義一個方法,這個問題在編譯的時候沒法顯示因此爲了保證覆寫方法的嚴格可使用一非註解(@Override)來檢測:若是該方法肯定成功覆寫了,則不會有語法錯誤,若是沒有成功的覆寫,則認爲是語法錯誤,
當你覆寫方法正確的時候,那麼就表示沒有任何問題,
在Eclipse裏面只要是你覆寫的方法基本上都會有該註解自動生成
若是如今你有一個程序類,從項目的1.0到77.0版本一直使用,從78.0版本開始,就會產生問題,那麼這個時候你能直接刪除這個類,換一個新的嗎,不能夠,由於其餘的舊還在使用這個類,而且這個類在舊版本沒問題,在新版本沒問題,因此這個時候新版本擴展的時候,不建議使用這個類了,就加一個過時的註解
範例:觀察過時操做
1 package cn.Tony.demo; 2 3 class Person{ 4 @Deprecated //表示該方法已經不建議使用了,當時即便使用了也不會出錯誤 5 public Person() {} 6 public Person(String name) {} 7 @Deprecated 8 public void fun() {} 9 } 10 public class TestDemo { 11 public static void main(String[] args) { 12 Person per=new Person(); 13 per.fun(); 14 per=new Person(""); 15 } 16 }
這種過時的處理操做每每出如今一些平臺的支持上,例如JDK這個平臺,在JDK有不少方法都不建議使用
當調用了某些操做可能產生問題的時候,可能會出現警告信息,可是警告信息並非錯。在你本身的可控制訪問裏面,會認爲警告沒有意義,這個時候不想總提示警告, 就能夠對警告進行壓制
1 public class TestDemo { 2 @SuppressWarnings({ "rawtypes", "unused" }) 3 public static void main(String[] args) { 4 Person per=new Person(); 5 } 6 }
有了Eclipse開發工具以後這些警告信息出現,直接進行代碼的糾正處理,
總結:
這三種Annocation是JDK默認支持的程序類中使用的,之後會接觸到一些功能性的Annotation