Java中註解學習系列教程-3

Java中註解學習系列教程-3

凱哥java 凱哥java
本文是《Java中註解學習系列教程》第三篇文章
在前兩篇中咱們學習了註解的定義、JDK內置註解、註解分類及自定義註解的寫法。
本文我們將學習:
Java中註解學習系列教程-3
1:自定義註解一些說明
2:自定義註解怎麼使用
3:怎麼解析自定義註解
一:自定義註解一些說明:
自定義註解的時候,內部成員可被容許的類型又有哪些呢?
1:基本類型(Java中8中基本類型)
2:stirng類型
3:class
4:其餘註解
5:枚舉類
6:以上五類的數組
以下圖:
Java中註解學習系列教程-3
Java官方文檔(https://docs.oracle.com/javase/specs/jls/se8/html/jls-9.html#jls-9.6.1)原文以下
Java中註解學習系列教程-3
類型舉例:
Java中註解學習系列教程-3
須要說明的:
1:若是註解只有一個成員時候,成員名稱必須爲value
2:註解類能夠沒有成員,沒有成員的註解爲:標識註解
二:自定義註解的使用
說明:自定義註解根據其使用範圍使用。
如MyAnnotation1這個自定義註解
Java中註解學習系列教程-3
使用範圍是是method和field上。
咱們就在method的使用該註解:
語法是:
註解名稱(成員名稱 = 成員值,成員名稱2 = 成員值2)
以下圖:
Java中註解學習系列教程-3
三:註解解析
在使用註解的時候,使用的反射處理的。



































html

public class MyAnnotation1Test {

    public static void main(String[] args) {
        try {
          //1:使用類加載器加載類
            Class clazz = Class.forName("MyAnnotation1PoJo");
            //2:在對於的類上是否存在對於註解
            //獲取方法上是否有註解
            for(Method method : clazz.getMethods()){
                boolean isMothExistMyAnnotation1 = method.isAnnotationPresent(MyAnnotation1.class);
                if(isMothExistMyAnnotation1){
                    //3:若是存在。就獲取
                    MyAnnotation1 myAnnotation1 = (MyAnnotation1)method.getDeclaredAnnotation(MyAnnotation1.class);
                    System.out.println("==>:方法"+method.getName()+"有註解。值爲:"+myAnnotation1.value());

                }else{
                    System.out.println("==>:方法"+method.getName()+"無註解");
                }
            }

        }catch (Exception e){
            e.printStackTrace();
        }
    }
}

Java中註解學習系列教程-3
注:關於反射方面的學習。在後期,凱哥也會出相應的學習教程。
咱們查看運行後的結果:
Java中註解學習系列教程-3
能夠正常解析出自定義註解的值。
下節預告:在下一節中,凱哥將經過自定義註解實現excel的導出功能




java

相關文章
相關標籤/搜索