public void process(){
//使用set 可以避免收集到重复的warning message
//使用linkedHashSet 可以使得收集的warning message 再遍历时候可以按照添加顺序显示
Set<String> errorMsgs = new LinkedHashSet<String>();
boolean isDataLegal = validate(objects,messageSet);
...
//把收集的消息变成一条语句返回前台
StringBuilder sb = new StringBuilder();
for(String s : errorMsgs){
sb.append(s);
}
return sb.toString();
}
//方法返回boolean值可以方便处理逻辑时候根据需要中断程序 或是继续程序
private boolean validate(Set<Object> objects, Set<String> errorMsgs) {
//根据message set的size 来判断这个方法是不是已经通过验证
int startInx = errorMsgs.size();
//使用messageTpl可以使得 消息的显示更加标准。同时方便Set 去做filtering
String errorMsg = "%1$s status %2$s is illegal.";
for(Object o : objects){
if(o == null){
errorMsgs.add(String.format(errorMsg, o.toString()));
}
}
return errorMsgs.size() == startInx;
}