1. 程式人生 > >Java自定義註解和執行時靠反射獲取註解

Java自定義註解和執行時靠反射獲取註解

<span style="font-family:SimHei;font-size:18px;color:#663300;"><strong><span class="bh_code_a_Java_keywords">public</span> <span class="bh_code_a_Java_keywords">static</span> <span class="bh_code_a_Java_keywords">void</span> main(String[] args) <span class="bh_code_a_Java_keywords">throws</span> SecurityException, NoSuchMethodException, IllegalArgumentException, IllegalAccessException, InvocationTargetException {
    AnnotationTest2 annotationTest2 = <span class="bh_code_a_Java_keywords">new</span> AnnotationTest2();
    <span class="bh_code_a_Java_comments">//獲取AnnotationTest2的Class例項</span>
    Class<AnnotationTest2> c = AnnotationTest2.<span class="bh_code_a_Java_keywords">class</span>;
    <span class="bh_code_a_Java_comments">//獲取需要處理的方法Method例項</span>
    Method method = c.getMethod(<span class="bh_code_a_Java_string">"execute"</span>, <span class="bh_code_a_Java_keywords">new</span> Class[]{});
    <span class="bh_code_a_Java_comments">//判斷該方法是否包含MyAnnotation註解</span>
    <span class="bh_code_a_Java_keywords">if</span>(method.isAnnotationPresent(MyAnnotation.<span class="bh_code_a_Java_keywords">class</span>)){
        <span class="bh_code_a_Java_comments">//獲取該方法的MyAnnotation註解例項</span>
        MyAnnotation myAnnotation = method.getAnnotation(MyAnnotation.<span class="bh_code_a_Java_keywords">class</span>);
        <span class="bh_code_a_Java_comments">//執行該方法</span>
        method.invoke(annotationTest2, <span class="bh_code_a_Java_keywords">new</span> Object[]{});
        <span class="bh_code_a_Java_comments">//獲取myAnnotation</span>
        String[] value1 = myAnnotation.value1();
        System.out.println(value1[0]);
    }
    <span class="bh_code_a_Java_comments">//獲取方法上的所有註解</span>
    Annotation[] annotations = method.getAnnotations();
    <span class="bh_code_a_Java_keywords">for</span>(Annotation annotation : annotations){
        System.out.println(annotation);
    }
}</strong></span>

相關推薦

Java定義註解執行反射獲取註解

<span style="font-family:SimHei;font-size:18px;color:#663300;"><strong><span class="bh_code_a_Java_keywords">public</span> <span

Docker定義網路執行指定IP

Docker 預設網路 Docker安裝後,預設會建立下面三種網路型別: 1 2 3 4 5 $ docker network ls NETWORK ID     NAME        DRIVER       SCOPE 9781b1f585ae   

Java 定義servlet 繼承httpservlet 需要引入那些jar包

因為我們的web引用是在servlet容器中執行,所以我們需要繼承當前容器提供的servlet介面,實現自己定義的servlet類。來處理我們需要接收和處理的action請求。 舉例我們當前使用的是tomcat伺服器,我們只需要引入tomcat安裝目錄lib資

JAVA定義註解的使用定義

 最近有所瞭解到自定義註解的應用,因此學習了一下,在專案後臺介面開發中,資料的傳輸經常有對資料內容格式及一些資訊規則的校驗,應用註解在資料進入後臺的開始使用自定義註解是一種比較可靠的方案。 一、註解的概念及分類        1.首先我們來看一下什麼是註解:        

定義註解執行註解(RetentionPolicy.RUNTIME)

前面有提到註解按生命週期來劃分可分為3類: 1、RetentionPolicy.SOURCE:註解只保留在原始檔,當Java檔案編譯成class檔案的時候,註解被遺棄; 2、RetentionPolicy.CLASS:註解被保留到class檔案,但jvm載入class檔案

Java定義執行緒池執行緒總數控制

1 概述池化是常見的思想,執行緒池是非常典型的池化的實現,《Java併發程式設計實戰》也大篇幅去講解了Java中的執行緒池。本文實現一個簡單的執行緒池。 2 核心類 【1】介面定義 public interface IThreadPool<Job extends

Java定義註解的使用場景原理

什麼是註解?       對於很多初次接觸的開發者來說應該都有這個疑問?Annontation是Java5開始引入的新特徵,中文名稱叫註解。它提供了一種安全的類似註釋的機制,用來將任何的資訊或元資料(metadata)與程式元素(類、方法、成員變數等)進行關聯。為程式的元素(類、方法、成員變數)加上更直觀更明

JAVA定義註解提取註解資訊

第一節:定義註解       定義新的Annotation型別使用@interface關鍵字(在原有interface關鍵字前增加@符號)。定義一個新的Annotation型別與定義一個介面很像,例如: public @interface Test{ } 定義完該Annot

java @interface定義註解通過反射獲取註解屬性值

@interface @interface用來宣告一個註解,其中的每一個方法實際上是聲明瞭一個配置引數。 方法的名稱就是引數的名稱,返回值型別就是引數的型別 引數型別只能是基本型別、Class、String、enum。 可以通過default來宣告引數的

Java定義註解(原理API)初探

    今天稍稍學習了下註解,關於註解,我想大家都不陌生,目前可能在hibernate配置中可能會用的多一點,在JPA中也會用到。我想說的是學習註解可以幫助我們更好的理解註解在框架中(比如hibernate和Spirng等)的應用。     Annotation是JDK5版本以來的新特性。目前在JavaSE

Java定義執行異常編譯異常類

       Throwable 類是 Java 語言中所有錯誤Error 和異常Exception的超類,而異常分為執行時異常和非執行時異常        1、Error和執行時異常RuntimeException及其子類為非檢查異常(unchecked),其它異常為檢查異常(checked)。    

Java定義註解 springMVC攔截器 配合使用記錄系統操作日誌的案例

自定義註解的用法, 好多人不知道, 在這裡, 程式碼的註釋中, 我已經詳細的介紹了, 另外就是很多人不知道自定義註解如何使用, 這裡配合springMVC攔截器, 做一個非常實用的案例. 案例: 記錄系統操作的日誌 首先是定義註解: package cn.wxy.ssm

Java定義註解反射校驗數據

sda new out 格式 是否 本地 imp 使用範圍 數據類型 package com.annotations.ecargo; import java.lang.annotation.ElementType; import java.lang.annotati

java定義註解

不包含 doc 1.2 color 子類 局部變量 ati 包含 ant Java註解是附加在代碼中的一些元信息,用於一些工具在編譯、運行時進行解析和使用,起到說明、配置的功能。註解不會也不能影響代碼的實際邏輯,僅僅起到輔助性的作用。包含在 java.lang.annot

Java定義類加載ClassPath類加載器

訪問 pub 需要 委派 iat 定義 pro logs repl 1 自定義類加載器: 實現規則: 自定義類加載器,需要重寫findClass,然後通過調用loadClass進行類加載(loadClass通過遞歸實現類的雙親委派加載) package com.daxin

Java定義註解及通過反射獲取註解

tco element pos pri jvm ado 參數聲明 機制 world 一、註解基本知識   1、元註解:@Retention @Target @Document @Inherited   2、Annotation型定義為@interface, 所有的Annot

java 定義註解

tar 基本用法 而且 最簡 ida outline plain 現在 傳播 參考鏈接:https://blog.csdn.net/hbzyaxiu520/article/details/6212969 JAVA自定義註釋(Target,Retention,Document

Java 定義註解&通過反射獲取類、方法、屬性上的註解

反射 JAVA中的反射是執行中的程式檢查自己和軟體執行環境的能力,它可以根據它發現的進行改變。通俗的講就是反射可以在執行時根據指定的類名獲得類的資訊。   註解的定義 註解通過 @interface 關鍵字進行定義。 /** * 自定義註解 *

Java中的定義ArrayList<E>的使用案例

自定義類和ArrayList的使用 自定義類: 將生活中事物抽象成程式碼,或者說是對生活中事物的一種對映。 1.類是一種引用資料型別 2.類中包含了屬性和功能, 屬性:事物的特性,例如:name(姓名),gender(性別),color(顏色),brand(品牌),siz

Java定義註解之元註解(meta-annotation)Target、Retention、Documented、Inherited介紹

元註解:   元註解的作用就是負責註解其他(如:自定義)註解,用來對其它 annotation型別作說明。Java定義了4個標準的meta-annotation型別:    [email protected]    [email protected