Java內建註解

2021-08-22 17:48:38 字數 2138 閱讀 7761

一內建註解

@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...