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;
/**
* Project Name:Anno
* File Name:Anno.java
* Package Name:
* Date:2014-3-28下午1:57:42
*
*/
/**
* ClassName:Anno
* Function: 反射简单例子.
* Date: 2014-3-28 下午1:57:42
* @author Administrator
*/
@Target(value = ElementType.METHOD)
@Retention(value = RetentionPolicy.RUNTIME)
@interface CanRun {
public String value() default "";
}
class AnnotationRunner {
public void method1(){
System.out.println("method1");
}
@CanRun(value="vvvv")
public void method2(){
System.out.println("method2");
}
@CanRun
public void method3(){
System.out.println("method3");
}
public void method4(){
System.out.println("method4");
}
public void method5(){
System.out.println("method5");
}
}
public class Anno {
public static void main(String[] args){
AnnotationRunner runner = new AnnotationRunner();
Method[] methods = runner.getClass().getMethods();
for(Method method : methods){
CanRun annos = method.getAnnotation(CanRun.class);
if(annos != null){
System.out.println(annos.value());
try{
method.invoke(runner);
}catch(Exception e){
e.printStackTrace();
}
}
}
}
}
JAVA注解简单例子
最新推荐文章于 2021-04-27 19:35:06 发布