java中基本注解的知識(shí)點(diǎn)總結(jié)
1、java.lang.Override是一個(gè)標(biāo)記類型注解,它被用作標(biāo)注方法.他說明了該方法是繼承了父類的方法,就是重寫了父類中同名方法。
@Overridepublic void onCreate(Bundle savedInstanceState){…….}
這種寫法是正確的,如果你寫成:
@Overridepublic void oncreate(Bundle savedInstanceState){…….}
編譯器會(huì)報(bào)如下錯(cuò)誤:The method oncreate(Bundle) of type HelloWorld must override orimplement a supertype method,以確保你正確重寫onCreate方法(因?yàn)閛ncreate應(yīng)該為onCreate)而如果你不加@Override,則編譯器將不會(huì)檢測(cè)出錯(cuò)誤,而是會(huì)認(rèn)為你為子類定義了一個(gè)新方法:oncreate
2、SuppressWarnings
通過它告訴編譯器忽視可能出現(xiàn)的警告。實(shí)際上里面有很多參數(shù),不同參數(shù)設(shè)置不同的警告。
- deprecation,使用了過時(shí)的類或方法時(shí)的警告- unchecked,執(zhí)行了未檢查的轉(zhuǎn)換時(shí)的警告- fallthrough,當(dāng) switch 程序塊直接通往下一種情況而沒有 break 時(shí)的警告- path,在類路徑、源文件路徑等中有不存在的路徑時(shí)的警告- serial,當(dāng)在可序列化的類上缺少serialVersionUID 定義時(shí)的警告- finally ,任何 finally 子句不能正常完成時(shí)的警告- all,關(guān)于以上所有情況的警告
內(nèi)容擴(kuò)展:
自定義注解測(cè)試定義注解@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í),可以采用簡寫的方式,省略參數(shù)名和等號(hào)。
public class Demo { @RepeatMethod(5) public void doSomeThing(){ System.out.println('----注解測(cè)試----'); }}
通過反射獲取注解信息,然后做對(duì)應(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é)果:
----注解測(cè)試--------注解測(cè)試--------注解測(cè)試--------注解測(cè)試--------注解測(cè)試----
到此這篇關(guān)于java中基本注解的知識(shí)點(diǎn)總結(jié)的文章就介紹到這了,更多相關(guān)java中有哪些基本注解內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. 使用vue-cli創(chuàng)建項(xiàng)目并webpack打包的操作方法2. 在vue中獲取wangeditor的html和text的操作3. Python用K-means聚類算法進(jìn)行客戶分群的實(shí)現(xiàn)4. python mysql 字段與關(guān)鍵字沖突的解決方式5. python編寫五子棋游戲6. Java xml數(shù)據(jù)格式返回實(shí)現(xiàn)操作7. 解決Android Studio Design界面不顯示layout控件的問題8. vue style width a href動(dòng)態(tài)拼接問題的解決9. Java源碼解析之接口List10. python讀取中文路徑時(shí)出錯(cuò)(2種解決方案)
