自定义一个Annotation,定义Teacher类,定义say()方法,使用Annotation的三个基本的注释和自定义的Annotation,打印出Teacher类的say()的自定义的注释,并输出注释的属性值
package com.lianxi.annotation;
import java.lang.annotation.*;
class Student{
@Deprecated
@SuppressWarnings("a")
@Override
public String toString(){
return "Student{}";
}
}
class Teacher{
@Deprecated
@SuppressWarnings("a")
@myAnnotation2(value = "This is a custom annotation")
public void say(){
System.out.println("123");
}
}
@Target(ElementType.METHOD)//用于描述方法
@Retention(RetentionPolicy.RUNTIME)//用于运行时保留注释
@interface myAnnotation2{
String value() default "老师";//添加默认值
}
public class StudentTest {
public static void main(String[] args) throws NoSuchMethodException {
Student student=new Student();
System.out.println(student);
Teacher teacher=new Teacher();
teacher.say();
// 获取Teacher类的say()方法
java.lang.reflect.Method sayMethod = Teacher.class.getMethod("say");
// 获取并打印自定义注解的值
myAnnotation2 customAnnotation = sayMethod.getAnnotation(myAnnotation2.class);
System.out.println(customAnnotation.value());
}
}