使用以下代码
@Option(name = "age") // min = "1"
private int age;
如何验证age
字段?说必须大于零?
答案 0 :(得分:2)
您可以在Option
表单的方法上放置void methodName(T value)
注释。
所以你可以通过以下方式轻松完成。
private int age;
@Option(name = "age")
void setAge(int age) {
if (age < 1) {
throw new CmdLineException("message");
}
this.age = age;
}
答案 1 :(得分:1)
我用bean-validation
解决了自己。
一旦我注释了这些@Option
,
class Opts {
@Option(name = "-buffer-capacity",
usage = "each buffer's capacity in bytes")
@Min(1024)
private int bufferCapacity = 65536;
@Option(name = "-buffer-count", required = true,
usage = "number of buffers to allocate")
@Min(1)
@Max(1024)
private int bufferCount;
}
我可以使用bean-validation
验证它。
final Opts opts;
final ValidatorFactory factory
= Validation.buildDefaultValidatorFactory();
final Validator validator = factory.getValidator();
final Set<ConstraintViolation<Opts>> violations
= validator.validate(opts);