怎么在Java中利用反射访问注解信息例

  介绍

本篇文章为大家展示了怎么在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 名称(),default “methodname";   public 才能;String 单位(),default “unit";   }   public  class  ch21_8  {   public 才能;String  aString;   public 才能;static  void 主要(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 =, method.getAnnotation (testAnnoation8.class);   ,,,,,System.out.println(注释);   ,,,},catch  (Exception  e), {   ,,,,,e.printStackTrace ();   ,,,}   ,,}   @Deprecated才能   @testAnnoation8才能(=name “SOC",, unit =,“%”)   public 才能;void  getData1 (), {   ,,}   }

2运行

@java.lang.Deprecated ()
@testAnnoation8 (name=SOC、单位=%)
@testAnnoation8 (name=SOC、单位=%)

<强>三实战——访问类的某个成员方法的注解信息

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 名称(),default “methodname";   ,,public  String 单位(),default “unit";   }   public  class  ch21_9  {   public 才能;String  aString;   public 才能;static  void  main (String [], args), {   ,,try  {   ,,,,ch21_9  ch9=new  ch21_9 ();   ,,,,Method 方法=ch9.getClass () .getMethod (“getData1");   ,,,,Annotation 注释=method.getAnnotation (testAnnoation9.class);   ,,,,testAnnoation9  t9=(testAnnoation9)注释;   ,,,,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运行

值是SOC名称;单位%

怎么在Java中利用反射访问注解信息例