java注解

记录一下自己使用注解获取的过程

// 第一步: 定义注解
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface SimpleAnnotation {
    String value();
}

// 第二步:使用在方法上
public class UseAnnotation {
    @SimpleAnnotation(value = "testStringValue")
    public void testMethod(){

    }
}
// 第三步:获取哪些方法使用了
public class LogicMain {
    public static void main(String[] args) {
        Class useAnnotationClass = UseAnnotation.class;
        for (Method method : useAnnotationClass.getMethods()) {
            SimpleAnnotation annotation = method.getAnnotation(SimpleAnnotation.class);
            if (null != annotation) {
                System.out.println(" Method Name : " + method.getName());
                System.out.println(" value : " + annotation.value());
            }
        }
    }
}

输出结果:
Method Name : testMethod
value : testStringValue


// 第一步:定义注解
@Inherited
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation {

    String value() default "hello";
}

// 第二步:父类上使用,子类继承这个类
@MyAnnotation
public class Person {

}

class Student extends Person{

}

// 第三步:获取
public class TestAnnotation {
    public static void main(String[] args) {
        Class clazz = Student.class;
        Annotation[] annotations = clazz.getAnnotations();
        for (Annotation annotation : annotations) {
            System.out.println(annotation);
        }
    }
}

输出结果:
@com.zcl.edu.annotation2.MyAnnotation(value="hello")

你可能感兴趣的:(java)