简单判断对象是否含有NULL值,以及信息描述。

package com.sicdt.sicsign.bill.api.util;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List; import com.alibaba.fastjson.JSONObject;
import com.sicdt.sicsign.bill.api.model.CheckResultModel; public class CheckResultMsg {
private boolean isSuccess;
private String massgage;
private List<CheckResultModel> successes = new ArrayList<>();//验证通过
private List<CheckResultModel> fails = new ArrayList<>();//验证失败 public CheckResultMsg() {
super();
// TODO Auto-generated constructor stub
} /**
* <br>描 述: 校验入参对象,是否含有空值
* <br>作 者: shizhenwei
* <br>历 史: (版本) 作者 时间 注释
* @param obj
* @return
* @throws IllegalAccessException
* @throws IllegalArgumentException
* @throws InvocationTargetException
*/
public static CheckResultMsg checkObject(Object obj){
CheckResultMsg resultMsg = new CheckResultMsg();
if(null==obj){
resultMsg.setSuccess(true);
resultMsg.setMassgage("入参对象为NULL");
return resultMsg;
}
resultMsg.setSuccess(true);
List<CheckResultModel> successes = resultMsg.getSuccesses();
List<CheckResultModel> fails = resultMsg.getSuccesses();
Class<?> clazz = obj.getClass();
Method[] methods = clazz.getDeclaredMethods();
JSONObject jsonMsg = new JSONObject();
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);
return resultMsg;
}
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());
return resultMsg;
} /**
* <br>描 述: 校验入参对象,指定属性,是否含有空值
* <br>作 者: shizhenwei
* <br>历 史: (版本) 作者 时间 注释
* @param obj
* @return
* @throws IllegalAccessException
* @throws IllegalArgumentException
* @throws InvocationTargetException
*/
public static CheckResultMsg checkObject(Object obj, String[] fileds, boolean isCheckFileds){
CheckResultMsg resultMsg = new CheckResultMsg();
if(null==obj){
resultMsg.setSuccess(true);
resultMsg.setMassgage("入参对象为NULL");
return resultMsg;
}
resultMsg.setSuccess(true);
List<CheckResultModel> successes = resultMsg.getSuccesses();
List<CheckResultModel> fails = resultMsg.getSuccesses();
Class<?> clazz = obj.getClass();
Method[] methods = clazz.getDeclaredMethods();
JSONObject jsonMsg = new JSONObject();
for(Method method : methods){
String methodName = method.getName();
String fieldName = methodName.substring(3);
List<String> 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);
return resultMsg;
}
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());
return resultMsg;
} public String description(){
String message = "";
if(this.isSuccess){
message += "参数检查正确:"; }else{
message += "参数检查错误:";
}
return message+this.massgage;
} public boolean isSuccess() {
return isSuccess;
} public void setSuccess(boolean isSuccess) {
this.isSuccess = isSuccess;
} public String getMassgage() {
return massgage;
} public void setMassgage(String massgage) {
this.massgage = massgage;
} public List<CheckResultModel> getSuccesses() {
return successes;
}
public void setSuccesses(List<CheckResultModel> successes) {
this.successes = successes;
}
public List<CheckResultModel> getFails() {
return fails;
}
public void setFails(List<CheckResultModel> fails) {
this.fails = fails;
}
}

JAVA 判断对象内容是否含有空值的更多相关文章

  1. Java判断对象是否为NULL

    Java使用反射判断对象是否为NULL 判断Java对象是否为null可以有两层含义: 第一层:  直接使用 object == null 去判断,对象为null的时候返回true,不为null的时候 ...

  2. NDK开发小记录 C++读取java层对象内容

    这是自己NDK开发得小记录,关于C++层读取java层传来的对象内容. 很简单的一个例子, 1.首先在java层定义了一个类NumList: public class NumList { public ...

  3. Java判断对象类型是否为数组

    判断对象是否为数组: public static void main(String[] args) { String[] a = ["1","2"]; if(a ...

  4. Java判断对象是否为Null/空

    package com.taiping.test; import java.lang.reflect.Field; import java.lang.reflect.Type; /** * <p ...

  5. java判断字符串中是否含有中文

    /** * 判断字符串中是否含有中文 */ public static boolean isCNChar(String s){ boolean booleanValue = false; for(in ...

  6. java判断字符串内容

    java判断字符串是否全为数字 String str = "032";boolean isNum = str.matches("[0-9]+"); java判断 ...

  7. java判断字符串中是否含有汉字

    原文:http://www.open-open.com/code/view/1426332240717 判断字符串中是否含有汉字: String str = "test中文汉字"; ...

  8. Java判断字符串中是否含有英文

    实现代码: /* * 判断字符串中是否含有英文,包含返回true */ public boolean isENChar(String string) { boolean flag = false; P ...

  9. java 判断对象是否是某个类的类型两种方法

    第一种: instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例.instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例. 用法: resul ...

随机推荐

  1. MapReduce源码分析之JobSubmitter(一)

    JobSubmitter,顾名思义,它是MapReduce中作业提交者,而实际上JobSubmitter除了构造方法外,对外提供的唯一一个非private成员变量或方法就是submitJobInter ...

  2. pdfBox 读取pdf文件

    1.引入maven依赖 <dependency> <groupId>org.apache.pdfbox</groupId> <artifactId>pd ...

  3. linux服务器宕机分析/性能瓶颈分析

    linux服务器宕机分析/性能瓶颈分析   服务器宕机原因很多,资源不足.应用.硬件.系统内核bug等,以下一个小例子 服务器宕机了,首先得知道服务器宕机的时间点,然后分析日志查找原因 1.last ...

  4. Consul实现原理系列文章1: 用Raft来实现分布式一致性

    工作中用到了Consul来做服务发现,之后一段时间里,我会陆续发一些文章来讲述Consul实现原理.在前一篇文章中,我介绍了Raft算法.这篇文章会讲讲Consul是如何使用Raft算法来实现分布式一 ...

  5. Mysql闪回技术之 binlog2sql

    1.下载 https://github.com/danfengcao/binlog2sql http://rpmfind.net Search: python-pip pip 是一个Python包管理 ...

  6. caffe使用自己的数据做分类

    这里只举一个例子: Alexnet网络训练自己数据的过程 用AlexNet跑自己的数据 参考1:http://blog.csdn.net/gybheroin/article/details/54095 ...

  7. js 触摸事件 touch

    //ban 为某div let startX = 0; ban.addEventListener("touchstart",function(){ //获取初始点击位置 start ...

  8. Android无线测试之—UiAutomator UiSelector API介绍之一

    一. UiSelector类介绍: 1) UiSelector类说明: UiSelector代表一种搜索条件,可以在当前界面上查询和获取特定元素的句柄,当找到多余一个的匹配元素,则返回布局层次结构上第 ...

  9. css单行排版

    text-overflow: ellipsis; overflow: hidden; white-space: nowrap;

  10. JavaScript Observer Pattern

    var Users = { list: [], listeners: {}, add: function(name) { this.list.push({name: name}); this.disp ...