• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Java通过反射访问注解信息的方法示例

java 搞代码 4年前 (2022-01-09) 22次浏览 已收录 0个评论

本文实例讲述了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 ch11_8 {
  public String aString;
  public static void main( String[] args ) {
    try {
      ch11_8 ch8 = new ch11_8();
      Method method = ch8.getClass().getMethod("getData1");
      Annotation ans[] = method.getAnnotations();
      for (Annotation annotation : ans) {
        System.out.println(annotation);
      }
      Annotat<p style="color:transparent">本文来源gao!daima.com搞$代!码网</p>ion 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 ch11_9 {
  public String aString;
  public static void main(String[] args) {
   try {
     ch11_9 ch9=new ch11_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程序设计有所帮助。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Java通过反射访问注解信息的方法示例

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址