运用自定义注解出现空指针异常,求大神告知原因!!

public class Person {
String name;
int age;

@MyTiger
public Person(String name,int age){
    this.name = name;
    this.age = age;
}

@MyTiger
@Override
public String toString(){
     return "姓名:"+ name + "\n年龄:"+age;
}

public static void main(String[] args) throws Exception {
    Class clazz = Person.class;
    Annotation a = clazz.getAnnotation(MyTiger.class);
    MyTiger m = (MyTiger) a;
    Person person = new Person(m.value(),20);
    System.out.println(person);
}

}

@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD,ElementType.CONSTRUCTOR})
@interface MyTiger{
String value() default "学习委员";
}


试试加个this
public String toString(){
return "姓名:"+ this.name + "\n年龄:"+this.age;
}

注解在方法上,你返回的是类的注解为空

Annotation a = clazz.getConstructor(String.class,int.class).getAnnotation(MyTiger.class);

MyTiger 注解没有放到class上的属性。所以 clazz.getAnnotation(MyTiger.class)得不到注解。