[英]Hibernate Validator iterator.hasNext() not working
I'm getting an infinite loop with the following code (hasNext() always seems to be true) 我正在使用以下代码进行无限循环(hasNext()似乎总是正确的)
private final ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
private final Validator validator = factory.getValidator();
Set<ConstraintViolation<SomeRequest>> reqErrors = validator.validate(request);
StringBuilder sb = new StringBuilder();
while(reqErrors.iterator().hasNext()){
sb.append(reqErrors.iterator().next().getMessage() + "\n");
}
errors = sb.toString();
This works fine: 这很好用:
for(int i = 0; i < reqErrors.size(); i++){
sb.append(reqErrors.iterator().next().getMessage() + "\n");
}
What am I missing here? 我在这里想念什么?
It's because you are calling (creating) iterator twice !! 这是因为您两次调用(创建)迭代器!
Just make it once, at the top and use it. 只需使其一次在顶部即可使用。
Iterator iterator = reqErrors.iterator();
while(iterator.hasNext()){
sb.append(iterator.next().getMessage() + "\n");
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.