導語
這里只是簡單講解一下Annotation,以后講到反射的時候,再細講如何自定義Annotation。
主要內容
- Annotation的作用
- 三種內置的Annotation的使用
具體內容
對于軟件程序的開實際上經過了三個發展過程:
- 第一個過程:將所有與配置相關的內容直接寫到代碼之中。
- 第二個過程:將配置與程序代碼獨立,程序在運行的時候根據配置文件進行操作。
- 最嚴重的問題:一個項目里面配置文件過多,根本就無法查詢錯誤。
- 第三個過程:配置信息對用戶而言無用,而且胡亂的修改還會導致程序的錯誤,所以可以將配置信息寫回到程序里面,但是利用一些明顯的標記來區分配置信息與程序。
Annotation是JDK1.5最大的特色,利用注解的形式來實現程序的不同功能實現。
在JavaSE里面支持自定義Annotation的開發,并且摘借了三個最為常用的基礎Annotation:@Override、@Deprecated、@SuppressWamings。
準確的覆寫:@Override
如果在輸出對象的時候希望其可以返回需要的內容,那么一定要進行toString()方法的覆寫。
范例:使用@Override
public class Book {
@Override
public String toString() {
return "這是一本書!";
}
}
錯誤代碼
public class Book {
@Override
public String tostring() { // 因為S變為小寫,不是覆寫,所以使用@Override會報錯
return "這是一本書!";
}
}
所以此時為了告訴編譯器,toString()應該是覆寫的方法,那么就可以加上“@Override”,明確告訴編譯器,這個方法是覆寫,如果不是就會報錯。
聲明過期操作@Deprecated
比如說,現在有一個類中有一個fun()方法,后來發現fun方法有些不足,這時候開發者有兩個選擇:
- 選擇一:直接取消掉fun()方法,同時給出新的fun2方法。
- 選擇二:在新版本的開發包里面保存fun()方法,但是通過某途徑告訴用戶fun()方法有些問題,并提供fun2()方法供開發者使用。
這個時候可以使用“@Deprecated”來進行聲明。
范例:使用@Deprecated
public class Book {
@Deprecated
public void fun() {}
}
public class TestDemo {
public static void main(String args[]) {
Book book = new Book();
book.fun();
}
}
在編譯器中,在fun()方法會被中劃線標記。
利用此操作可以很好的實現方法功能的新舊交替。
壓制警告:@SuppressWamings
可以壓制多個警告。
范例:觀察警告
public class Book<T> {
private T title;
public void setTitle(T title) {
this.title = title;
}
}
public class TestDemo {
public static void main(String args[]) {
Book book = new Book(); // 這里有警告
book.setTitle("Hello"); // 這里有警告
}
}
如果現在是開發者故意留下的這個警告信息,但是又不希望總是提示警告,就可以選擇壓制警告。
范例:壓制警告
public class Book<T> {
private T title;
public void setTitle(T title) {
this.title = title;
}
}
public class TestDemo {
@SuppressWarnings("rawtypes", "unchecked")
public static void main(String args[]) {
Book book = new Book(); // 這里有警告
book.setTitle("Hello"); // 這里有警告
}
}
現在相當于取消了警告的提示信息。
總結
清楚三個Java的Annotation作用。