首页 > 代码库 > Java解析注解

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()
	{
		
	}
}



输出结果


Java解析注解