• Java解析注解


    package com.itbuluoge.anno;
    
    import java.lang.reflect.Method;
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.List;
    
    public class Test {
    
    	public static void trackUseCases(List<Integer> useCases,Class<?

    > cl) { for(Method m:cl.getDeclaredMethods()) { UseCase uc=m.getAnnotation(UseCase.class); if(uc!=null) { System.out.println("FOUND:"+uc.id()+" "+uc.description()); } } for(int i:useCases) { System.out.println("Warning.."+i); } } public static void Case(Class<?> cl) { for(Method m:cl.getDeclaredMethods()) { UseCase uc=m.getAnnotation(UseCase.class); if(uc!=null) { System.out.println("FOUND:"+uc.id()+" "+uc.description()); } } } /** * @param args */ public static void main(String[] args) { //List<Integer> useCases=new ArrayList<Integer>(); //Collections.addAll(useCases, 41,42); //trackUseCases(useCases,Testable.class); Case(Testable.class); } }


    package com.itbuluoge.anno;
    
    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 org.junit.Test;
    
    @Target(ElementType.METHOD)
    @Retention(RetentionPolicy.RUNTIME)
    @Documented
    @interface UseCase
    {
    	public int id();
    	public String description() default "no des";
    }
    
    public class Testable {
    
    	@UseCase(id=19,description="中国人")
    	public void say()
    	{
    		
    	}
    	
    	@UseCase(id=19)
    	public void listen()
    	{
    		
    	}
    }
    



    输出结果


  • 相关阅读:
    大数据经典学习路线(及供参考)
    Redis配置规范
    mysql中datetime和timestamp类型的区别
    bigint(10)和bigint(20)的区别
    Redis分布式锁,基于StringRedisTemplate和基于Lettuce实现setNx
    Spring security UserDetailsService autowired注入失败错误
    Java Print 打印
    Spring boot Junit Test单元测试
    RESTful作用与特性
    JS匿名函数理解
  • 原文地址:https://www.cnblogs.com/blfbuaa/p/7000600.html
Copyright © 2020-2023  润新知