package kw.java;
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;
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
@Documented
public @interface HellowWorldAnnocation {
public String name1() default "";
}
package kw.java;
public class Annocation {
@HellowWorldAnnocation(name1 = "dqd")
public String testAnnocation(String name){
if(name == null)
name = "";
return name+"HEHE";
}
}
package kw.java;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
public class ParseAnnotationStub {
public String pareseMethod222(Class<?> clazz) throws InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException, NoSuchMethodException, SecurityException{
//获取一个对象
Object obj = clazz.getConstructor(new Class[]{})
.newInstance(new Object[]{});
//对象的方法
for(Method method: clazz.getDeclaredMethods()){
//获取该方法上的的注解
HellowWorldAnnocation ha =
method.getAnnotation(HellowWorldAnnocation.class);
if(!ha.equals("")){
String tmp = ha.name1();
return (String)method.invoke(obj, tmp);
}
}
return "";
}
}
package kw.java;
import java.lang.reflect.InvocationTargetException;
public class Test {
@org.junit.Test
public void testHello() throws InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException, NoSuchMethodException, SecurityException{
ParseAnnotationStub pa = new ParseAnnotationStub();
String tmp = pa.pareseMethod222(Annocation.class);
System.out.println(tmp);
}
/*
@org.junit.Test
public void testHelloField() throws InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException, NoSuchMethodException, SecurityException{
ParseAnnotationStub2 pa2 = new ParseAnnotationStub2();
String tmp = pa2.pareseFiled(Annocation2.class);
System.out.println(tmp);
}*/
}
自定义注解与使用
最新推荐文章于 2022-09-05 21:40:42 发布