简单判断对象是否含有NULL值,以及信息描述。
packagecom.sicdt.sicsign.bill.api.util;importjava.lang.reflect.InvocationTargetException;importjava.lang.reflect.Method;importjava.util.ArrayList;importjava.util.Arrays;importjava.util.List;importcom.alibaba.fastjson.JSONObject;importcom.sicdt.sicsign.bill.api.model.CheckResultModel;public classCheckResultMsg {private booleanisSuccess;privateString massgage;private List successes = new ArrayList<>();//验证通过
private List fails = new ArrayList<>();//验证失败
publicCheckResultMsg() {super();//TODO Auto-generated constructor stub
}/***
描 述: 校验入参对象,是否含有空值
*
作 者: shizhenwei
*
历 史: (版本) 作者 时间 注释
*@paramobj
*@return*@throwsIllegalAccessException
*@throwsIllegalArgumentException
*@throwsInvocationTargetException*/
public staticCheckResultMsg checkObject(Object obj){
CheckResultMsg resultMsg= newCheckResultMsg();if(null==obj){
resultMsg.setSuccess(true);
resultMsg.setMassgage("入参对象为NULL");returnresultMsg;
}
resultMsg.setSuccess(true);
List successes =resultMsg.getSuccesses();
List fails =resultMsg.getSuccesses();
Class> clazz =obj.getClass();
Method[] methods=clazz.getDeclaredMethods();
JSONObject jsonMsg= newJSONObject();for(Method method : methods){
String methodName=method.getName();if(methodName.startsWith("get")){
Object res= null;try{
res=method.invoke(obj);
}catch (IllegalAccessException | IllegalArgumentException |InvocationTargetException e) {
e.printStackTrace();
resultMsg.setSuccess(false);returnresultMsg;
}if(null==res){
String fieldName= methodName.substring(3);
String fieldMsg= "不允许为NULL";
jsonMsg.put(fieldName, fieldMsg);
CheckResultModel model= new CheckResultModel(fieldName, fieldMsg, false);
fails.add(model);if(resultMsg.isSuccess()){
resultMsg.setSuccess(false);
}
}else{
CheckResultModel model= new CheckResultModel(methodName.substring(3), "正确", true);
successes.add(model);
}
}
}
resultMsg.setMassgage(jsonMsg.toJSONString());returnresultMsg;
}/***
描 述: 校验入参对象,指定属性,是否含有空值
*
作 者: shizhenwei
*
历 史: (版本) 作者 时间 注释
*@paramobj
*@return*@throwsIllegalAccessException
*@throwsIllegalArgumentException
*@throwsInvocationTargetException*/
public static CheckResultMsg checkObject(Object obj, String[] fileds, booleanisCheckFileds){
CheckResultMsg resultMsg= newCheckResultMsg();if(null==obj){
resultMsg.setSuccess(true);
resultMsg.setMassgage("入参对象为NULL");returnresultMsg;
}
resultMsg.setSuccess(true);
List successes =resultMsg.getSuccesses();
List fails =resultMsg.getSuccesses();
Class> clazz =obj.getClass();
Method[] methods=clazz.getDeclaredMethods();
JSONObject jsonMsg= newJSONObject();for(Method method : methods){
String methodName=method.getName();
String fieldName= methodName.substring(3);
List filedList =Arrays.asList(fileds);if(filedList.contains(fieldName) ==isCheckFileds){if(methodName.startsWith("get")){
Object res= null;try{
res=method.invoke(obj);
}catch (IllegalAccessException | IllegalArgumentException |InvocationTargetException e) {
e.printStackTrace();
resultMsg.setSuccess(false);returnresultMsg;
}if(null==res){
String fieldMsg= "不允许为NULL";
jsonMsg.put(fieldName, fieldMsg);
CheckResultModel model= new CheckResultModel(fieldName, fieldMsg, false);
fails.add(model);if(resultMsg.isSuccess()){
resultMsg.setSuccess(false);
}
}else{
CheckResultModel model= new CheckResultModel(methodName.substring(3), "正确", true);
successes.add(model);
}
}
}else{continue;
}
}
resultMsg.setMassgage(jsonMsg.toJSONString());returnresultMsg;
}publicString description(){
String message= "";if(this.isSuccess){
message+= "参数检查正确:";
}else{
message+= "参数检查错误:";
}return message+this.massgage;
}public booleanisSuccess() {returnisSuccess;
}public void setSuccess(booleanisSuccess) {this.isSuccess =isSuccess;
}publicString getMassgage() {returnmassgage;
}public voidsetMassgage(String massgage) {this.massgage =massgage;
}public ListgetSuccesses() {returnsuccesses;
}public void setSuccesses(Listsuccesses) {this.successes =successes;
}public ListgetFails() {returnfails;
}public void setFails(Listfails) {this.fails =fails;
}
}