java中基本注解的知識點(diǎn)總結(jié)
1、java.lang.Override是一個標(biāo)記類型注解,它被用作標(biāo)注方法.他說明了該方法是繼承了父類的方法,就是重寫了父類中同名方法。
@Override public void onCreate(Bundle savedInstanceState) {…….}
這種寫法是正確的,如果你寫成:
@Override public void oncreate(Bundle savedInstanceState) {…….}
編譯器會報如下錯誤:The method oncreate(Bundle) of type HelloWorld must override or
implement a supertype method,以確保你正確重寫onCreate方法(因?yàn)閛ncreate應(yīng)該為onCreate)
而如果你不加@Override,則編譯器將不會檢測出錯誤,而是會認(rèn)為你為子類定義了一個新方法:oncreate
2、SuppressWarnings
通過它告訴編譯器忽視可能出現(xiàn)的警告。實(shí)際上里面有很多參數(shù),不同參數(shù)設(shè)置不同的警告。
- deprecation,使用了過時的類或方法時的警告
- unchecked,執(zhí)行了未檢查的轉(zhuǎn)換時的警告
- fallthrough,當(dāng) switch 程序塊直接通往下一種情況而沒有 break 時的警告
- path,在類路徑、源文件路徑等中有不存在的路徑時的警告
- serial,當(dāng)在可序列化的類上缺少serialVersionUID 定義時的警告
- finally ,任何 finally 子句不能正常完成時的警告
- all,關(guān)于以上所有情況的警告
內(nèi)容擴(kuò)展:
自定義注解測試
定義注解@RepeatMethod,包含int類型參數(shù)value。
import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public @interface RepeatMethod { int value() default 1; }
在doSomeThing方法上應(yīng)用注解。如果要指定的注解參數(shù)為value,并且沒有指定其他的參數(shù)值時,可以采用簡寫的方式,省略參數(shù)名和等號。
public class Demo { @RepeatMethod(5) public void doSomeThing(){ System.out.println("----注解測試----"); } }
通過反射獲取注解信息,然后做對應(yīng)的處理,如假設(shè)@RepeatMethod注解的作用是重復(fù)調(diào)用被標(biāo)注的方法,參數(shù)value是指定重復(fù)調(diào)用方法的次數(shù):
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; public class MyDemo { public static void main(String[] args) throws IllegalAccessException, InstantiationException, InvocationTargetException { Class cla = Demo.class; Method[] methods = cla.getMethods(); Object demo = cla.newInstance(); for (Method method : methods){ //判斷方法上是否有標(biāo)注@RepeatMethod注解 if(method.isAnnotationPresent(RepeatMethod.class)){ //獲取RepeatMethod注解的參數(shù)值 RepeatMethod repeatMethod = method.getAnnotation(RepeatMethod.class); for (int i = 0;i < repeatMethod.value(); i++) method.invoke(demo, null); } } } }
輸出結(jié)果:
----注解測試---- ----注解測試---- ----注解測試---- ----注解測試---- ----注解測試----
到此這篇關(guān)于java中基本注解的知識點(diǎn)總結(jié)的文章就介紹到這了,更多相關(guān)java中有哪些基本注解內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot項(xiàng)目如何打可執(zhí)行war包
最近小編做了一個springboot項(xiàng)目,最后需要打成war包在容器中部署,下面小編給大家分享下SpringBoot項(xiàng)目如何打可執(zhí)行war包,感興趣的朋友一起看看吧2020-04-04Java中s.charAt(index)用于提取字符串s中的特定字符操作
這篇文章主要介紹了Java中s.charAt(index)用于提取字符串s中的特定字符操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-10-10Java后綴數(shù)組之求sa數(shù)組的實(shí)例代碼
后綴數(shù)組就是一個字符串所有后綴大小排序后的一個集合,然后我們根據(jù)后綴數(shù)組的一些性質(zhì)就可以實(shí)現(xiàn)各種需求。這篇文章主要介紹了Java后綴數(shù)組-求sa數(shù)組,需要的朋友可以參考下2018-04-04Springboot2.x結(jié)合Mabatis3.x下Hikari連接數(shù)據(jù)庫報超時錯誤
本文針對Springboot2.x與Mybatis3.x結(jié)合使用時,Hikari連接數(shù)據(jù)庫出現(xiàn)超時錯誤的問題進(jìn)行了深入分析,并提供了一系列有效的解決方法,感興趣的可以了解一下2023-11-11springboot多模塊多環(huán)境配置文件問題(動態(tài)配置生產(chǎn)和開發(fā)環(huán)境)
這篇文章主要介紹了springboot多模塊多環(huán)境配置文件問題(動態(tài)配置生產(chǎn)和開發(fā)環(huán)境),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04JavaWeb動態(tài)導(dǎo)出Excel可彈出下載
這篇文章主要介紹了JavaWeb動態(tài)導(dǎo)出Excel,對Excel可彈出進(jìn)行下載操作,感興趣的小伙伴們可以參考一下2016-03-03