annotation就是“注解”,是Java5引入的新特性。
使用annotation并且结合Java的反射机制或者是AOP技术,你可以在不影响源程序或者仅仅修改少量代码的情况下,为原来的程序添加新的功能。
例如在你的程序中:
@RequiredStringValidator(message = "Please enter a name", trim = true)
public void setName(String name) { this.name = name; }
这几句代码。其中的RequiredStringValidator就是一个annotation,根据你的程序,这个annotation的定义可能是:
public @interface RequiredStringValidator {
    public String message;
    public Boolean trim;
};
也就是说,你的setName方法被标注上了一个RequiredStringValidator的注解,并且在这种情况下,message属性被赋予“Please enter a name"值,trim属性被设为true。当执行到setName这个方法时,RequiredStringValidator就会起作用。这时你只要通过反射或者AOP,就可以捕获到这个注解,并且触发一段新的代码。
这样做的好处是减少程序的耦合,使程序更加面向切面。