自定义注解与使用

来源:互联网 发布:json的解析方法 安卓 编辑:程序博客网 时间:2024/05/16 12:49
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)@Documentedpublic @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.Testpublic 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.Testpublic void testHelloField() throws InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException, NoSuchMethodException, SecurityException{ParseAnnotationStub2 pa2 = new ParseAnnotationStub2();String tmp = pa2.pareseFiled(Annocation2.class);System.out.println(tmp);}*/}