您好,登錄后才能下訂單哦!
本篇文章為大家展示了Java中怎么通過反射訪問注解信息,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
一 點睛
利用Java的反射機制,可以訪問注解信息。比如在調用某個方法時,需要知道該方法的一些基本信息,而這些信息又需要動態獲取時,利用發射獲取注解信息是一個比較理想的處理方式。
二 實戰——訪問類的某個成員方法的注解信息
1 代碼
import java.lang.annotation.Annotation;import java.lang.annotation.Documented;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;import java.lang.reflect.Method;@Documented@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.METHOD)@interface testAnnoation8 { public String name() default "methodname"; public String unit() default "unit";}public class ch21_8 { public String aString; public static void main( String[] args ) { try { ch21_8 ch8 = new ch21_8(); Method method = ch8.getClass().getMethod("getData1"); Annotation ans[] = method.getAnnotations(); for (Annotation annotation : ans) { System.out.println(annotation); } Annotation annotation = method.getAnnotation(testAnnoation8.class); System.out.println(annotation); } catch (Exception e) { e.printStackTrace(); } } @Deprecated @testAnnoation8(name = "SOC", unit = "%") public void getData1() { }}
2 運行
@java.lang.Deprecated()@testAnnoation8(name=SOC, unit=%)@testAnnoation8(name=SOC, unit=%)
三 實戰——訪問類的某個成員方法的注解信息
1 代碼
import java.lang.annotation.Annotation;import java.lang.annotation.Documented;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;import java.lang.reflect.Method;@Documented@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.METHOD)@interface testAnnoation9{ public String name() default "methodname"; public String unit() default "unit";}public class ch21_9 { public String aString; public static void main(String[] args) { try { ch21_9 ch9=new ch21_9(); Method method=ch9.getClass().getMethod("getData1"); Annotation annotation=method.getAnnotation(testAnnoation9.class); testAnnoation9 t9=(testAnnoation9)annotation; System.out.println("name value is "+t9.name()+"; unit is "+t9.unit()); } catch (Exception e) { e.printStackTrace(); } } @Deprecated @testAnnoation9(name = "SOC", unit = "%") public void getData1(){ }}
2 運行
name value is SOC; unit is %
上述內容就是Java中怎么通過反射訪問注解信息,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。