关于java: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<UseAnnotation> 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<Student> clazz = Student.class;
        Annotation[] annotations = clazz.getAnnotations();
        for (Annotation annotation : annotations) {
            System.out.println(annotation);
        }
    }
}

输入后果:
@com.zcl.edu.annotation2.MyAnnotation(value=”hello”)

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理