import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.Map;
public class Result {
private Integer code;
private String message;
/**
* 对外部提供的接口,有一些前置校验参数。
* */
public Result getInfo(Map<String, String> m) {
//传统方式校验
if(m.get("org") == null){
return Result.error("机构号不能为空");
}else if(m.get("channel") == null){
return Result.error("渠道号不能为空");
}else if(m.get("name") == null){
return Result.error("姓名不能为空");
}else if(m.get("container") == null){
return Result.error("集装箱号码不能为空");
}else if(m.get("signNum") == null){
return Result.error("标志号号码不能为空");
}
//...................
//反射方式校验
Result r = Result.isNull(m, "org","channel","name","container","signNum");
if(r.getCode() == -100){
return r;
}
/**
* 业务处理
* */
}
public static <T>Result isNull(T t,String ... arr){
try{
for(String s : arr){
//获得T类中的get()方法
Method m = t.getClass().getMethod("get", Object.class);
//调用t类中的get()方法,传入参数s
if(m.invoke(t, s) == null || m.invoke(t, s) == ""){
return Result.error(s+":不能为空");
}
}
}catch(Exception e){
return Result.error("unkonw exception");
}
return Result.ok();
}
//测试
public static void main(String[] args) {
Map<String, String> m = new HashMap<>();
m.put("a", "");
Result r = Result.isNull(m, "a");
}
public static Result error(String message){
Result r = new Result();
r.setCode(-100);
r.setMessage(message);
return r;
}
public static Result ok(){
Result r = new Result();
r.setCode(200);
return r;
}
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}