1肋联、認(rèn)識(shí)Annotation
JDK1JDK1.5開始,Java增加了對(duì)元數(shù)據(jù)(即類的組成單元數(shù)據(jù))的支持刁俭,也就是(Annotation)注解橄仍,它是代碼里做的特殊標(biāo)記,這些標(biāo)記可以再編譯牍戚,類加載沙兰,運(yùn)行時(shí)在不改變?cè)羞壿嫷那闆r下,被讀取翘魄,并執(zhí)行相應(yīng)的處理,通過使用Annotation舀奶,程序員可以在源文件中嵌入一些補(bǔ)充的信息暑竟。代碼分析工具,開發(fā)工具和部署工具可以通過這些補(bǔ)充信息進(jìn)行驗(yàn)證或者進(jìn)行部署。Annotation類似于修飾符一樣被使用但荤,可以用于包罗岖,類,構(gòu)造方法腹躁,方法桑包,成員變量,參數(shù)纺非,局部變量的聲明哑了。
Annotation 是一個(gè)接口
2、系統(tǒng)定義的Annotation
在JDK1.5之后烧颖,在系統(tǒng)中提供了三個(gè)Annotation弱左,分別是:@Override、@Deprecated炕淮、@SuppressWarinings
@Override
表示當(dāng)前的方法定義將覆蓋超類中的方法拆火。如果不小心拼寫錯(cuò)誤,或者方法簽名對(duì)不上被覆蓋的方法涂圆,編譯器就會(huì)發(fā)出錯(cuò)誤提示们镜。
@Deprecated
表示的是一個(gè)類或方法已經(jīng)不再建議繼續(xù)使用了,標(biāo)記為已過時(shí)
@SuppressWarinings
表示關(guān)閉不當(dāng)?shù)木幾g器警告信息
@SuppressWarinings("unchecked") //未檢查的轉(zhuǎn)化润歉,如集合沒有指定類型
@SuppressWarinings("unused") //未使用的變量
@SuppressWarinings("resource") //有泛型未指定類型
@SuppressWarinings("path") //在類路徑模狭,原文件路徑中有不存在的路徑
@SuppressWarinings("deprecation") //使用了某些不贊成使用的類和方法
@SuppressWarinings("fallthrough") //switch語句執(zhí)行到底沒有break關(guān)鍵字
@SuppressWarinings("serial") //某類實(shí)現(xiàn)Serializable但是沒有定義serialVersionUID這個(gè)需要但是不必須的字段
@SuppressWarinings("rawtypes") //沒有傳遞帶有泛型的參數(shù)
@SuppressWarinings("all") //全部類型的警告
package com.vince.Annotation;
@SuppressWarnings("all") //該注解表示:消除所有的警告信息(不消除呢也沒關(guān)系就是為了代碼好看)
public class Cat {
private String name;
private int age;
public Cat(){ }
public Cat(String name,int age){
this.name=name;
this.age=age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override //該注解表示:用于驗(yàn)證方法是否覆蓋父類的方法
public String toString() {
return "Cat{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
@Deprecated //該注解表示:該方法已過時(shí)不建議再使用
public String printInfo(){
return "Cat{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
import org.junit.Test;
public class AnnotationDemo {
@Test
public void test() {
Cat cat = new Cat("bin", 3);
cat.printInfo(); //這里劃橫線就表示該方法在源類中已被注解為過時(shí)的方法,但是強(qiáng)制調(diào)用也可以
}
}