一內建註解
@override 表示覆蓋或重寫父類的方法。要求是:方法名稱、引數的型別及個數完全相同,如果寫錯,會提示編譯錯誤。
@deprecated 表示該方法已經過時了。當方法或是類上面有@deprecated註解時,說明該方法或是類都已經過期不能再用,但不影響以前專案使用,提醒你用新的方法或類代替。如果程式設計師不小心使用了它的元素,那麼編譯器會發出警告資訊。
@suppresswarnings 表示忽略指定警告,比如@suppvisewarnings("deprecation")。
二 不用 @override的樣子
1 **
class message
}class overrideerror
}
2 執行結果
message@1540e19d
3 說明
原本打算重寫tostring()方法,卻由於手誤寫成了tostring,不會產生編譯錯誤,因為jdk會認為它是乙個新方法,可是從實際需要來看,應該是要重寫tostring方法。
因此就發明了@override,它用在方法之上,就是用來告訴編譯器,這個方法是重寫父類同名方法,如果父類沒這個同名方法,就會發出警告資訊。
三 用@override後的的樣子
1 **
public class testannatation
class message
}class overrideerror
}
2 執行結果
連編譯都沒通過,更不用提執行結果
3 說明
會產生編譯告警。
public string tostring()修改為public string tostring()再執行,結果正常顯示hello
四 關於@deprecated乙個實實在在的例子
string有乙個建構函式如下,註解了@deprecated,**如下:
@deprecated
public string(byte ascii, int hibyte)
如果用該建構函式進行初始化,idea介面如下所示:
這個過時的方法並不能將多個位元組準確地轉換為字元,該方法過時了,用@deprecated標註,所以出現了介面上的刪除線。
五 給自定義的方法加個@deprecated
1 **
class deprecatedannotation
}class info
}
2 執行結果
hello world
六 不使用@suppresswarnings的樣子
會提示警告。
七 使用@suppresswarnings的樣子
class testclass
}
八 賞析一下三個內建註解的定義
@target(elementtype.method)
@retention(retentionpolicy.source)
public @inte***ce override
@documented
@retention(retentionpolicy.runtime)
@target(value=)
public @inte***ce deprecated
@target()
@retention(retentionpolicy.source)
public @inte***ce suppresswarnings
在此拋磚引玉,後文自定義註解會參考這些定義的格式。 Java 註解 元註解
retention retentionpolicy.source 註解僅存在於原始碼中,在class位元組碼檔案中不包含 retention retentionpolicy.class 預設的保留策略,註解會在class位元組碼檔案中存在,但執行時無法獲得,retention retentionpo...
java常用註解
這兩天公司在做乙個 專案,框架使用的是springmvc框架,在這裡對這幾個註解做乙個歸納整理 專案中的controller層使用 controller註解 service採用 service註解 例 service userservice 註解是告訴spring,當spring要建立userser...
Java註解學習
inte cepublic inte ce testannotation testannotation public class test retention retentionpolicy.runtime public inte ce testannotation elementtype.cons...