package com.what21.jdk15.demo02;
import java.lang.annotation.Documented;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
public @interface Property {
/**
* 默认值为""
*
* @return
*/
String name() default "";
/**
* 默认值为""
*
* @return
*/
String value() default "";
}
package com.what21.jdk15.demo02;
import java.lang.annotation.Annotation;
@Property(name = "class")
public class AnnotationDemo {
@Property(name = "field", value = "test")
public String test;
@Property(name = "method", value = "test")
public static void test() {
System.out.println("test()");
}
/**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
// ========获取类的注解========
Annotation classAno = AnnotationDemo.class
.getAnnotation(Property.class);
System.out.println(classAno);
// ========获取字段的注解========
Annotation fieldAno = AnnotationDemo.class.getField("test")
.getAnnotation(Property.class);
System.out.println(fieldAno);
// ========获取方法的注解========
Annotation methodAno = AnnotationDemo.class.getMethod("test")
.getAnnotation(Property.class);
System.out.println(methodAno);
}
}