欢迎来到代码驿站!

JAVA代码

当前位置:首页 > 软件编程 > JAVA代码

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

时间:2021-10-16 08:01:28|栏目: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 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);
      }
      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 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相关内容感兴趣的读者可查看本站专题:《Java面向对象程序设计入门与进阶教程》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总

希望本文所述对大家java程序设计有所帮助。

上一篇:Java8 CompletableFuture详解

栏    目:JAVA代码

下一篇:springboot jar包外置配置文件的解决方法

本文标题:Java通过反射访问注解信息的方法示例

本文地址:http://www.codeinn.net/misctech/180108.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有