java註解的理解與注意
阿新 • • 發佈:2022-03-14
1,如果註解本身沒有註解型別元素,那麼在使用註解的時候可以省略(),直接寫為:@註解名,它和標準語法@註解名()等效!
2,如果註解本本身只有一個註解型別元素,而且命名為value,那麼在使用註解的時候可以直接使用:@註解名(註解值),其等效於:@註解名(value = 註解值)
3,如果註解中的某個註解型別元素是一個數組型別,在使用時又出現只需要填入一個值的情況,那麼在使用註解時可以直接寫為:@註解名(型別名 = 型別值),它和標準寫法:@註解名(型別名 = {型別值})等效!
4,如果一個註解的@Target是定義為Element.PACKAGE,那麼這個註解是配置在package-info.java中的,而不能直接在某個類的package程式碼上面配置。
在執行期探究和使用編譯期的內容(編譯期配置的註解),要用到Java的反射技術
//獲取Student的Class物件 Class stuClass = Class.forName("pojos.Student"); //這裡形參不能寫成Integer.class,應寫為int.class Method stuMethod = stuClass.getMethod("study",int.class); if(stuMethod.isAnnotationPresent(CherryAnnotation.class)){ System.out.println("Student類上配置了CherryAnnotation註解!"); //獲取該元素上指定型別的註解 CherryAnnotation cherryAnnotation = stuMethod.getAnnotation(CherryAnnotation.class); System.out.println("name: " + cherryAnnotation.name() + ", age: " + cherryAnnotation.age() + ", score: " + cherryAnnotation.score()[0]); }else{ System.out.println("Student類上沒有配置CherryAnnotation註解!"); }
轉載:https://blog.csdn.net/xsp_happyboy/article/details/80987484