package com.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation {
String myvalue() default "Hi";
}
package com.annotation;
@MyAnnotation()
public class MyClass {
@MyCopyright(author = "xxx", title = "ssxxssx", version = "1.0")
public String init() {
return "hello";
}
}
package com.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface MyCopyright {
String title();
String version();
String author();
}
package com.annotation;
import java.lang.reflect.Method;
public class Test {
public static void main(String[] args) {
try {
Class clazz = Class.forName("com.annotation.MyClass");
Method[] methods = clazz.getMethods();
boolean right = clazz.isAnnotationPresent(MyAnnotation.class);
if (right) {
MyAnnotation annotation = (MyAnnotation) clazz
.getAnnotation(MyAnnotation.class);
System.out.println(annotation.myvalue());
}
for (Method method : methods) {
if (method.isAnnotationPresent(MyCopyright.class)) {
MyCopyright mc = method.getAnnotation(MyCopyright.class);
System.out.println(mc.author() + "\n" + mc.title() + "\n"
+ mc.version());
}
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}