@Target(value=METHOD)
@Retention(value=RUNTIME)
public @interface Required
Marks a field as required. Fields marked with this annotation will throw a NullPointerException when accessed if a
nonnull value is not present, or when the validate() method is called on the instance.