简单判断对象是否含有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. hibernate的helloworld实现

    首先要新建一个 web project,然后新建一个lib的文件夹并导入相应的jar包 hibernate开发步骤: 1.创建hibernate配置文件 2.创建持久化类 3.创建对象关系映射文件 如 ...

  2. Web Service安全问题,不暴露接口的一种办法

    我们在做服务层时,经常会用到Web Service,但是这有个问题,容易被人恶意调用接口. 一种解决办法是自己写个验证SoapHeader,屏蔽接口在网页端调用,但使用这个方法别人还是能看到你的接口有 ...

  3. mysql日期函数 和sql语句扩展information_schema show processlist;

    SELECT NOW(); SELECT CURDATE(); SELECT YEAR(NOW()) SELECT CONCAT("mysqldump ","-uroot ...

  4. Java进阶03 IO基础(转载)

    IO示例 下面是演示的文件file.txt Hello World! Hello Nerd! 先来研究一个文件读取的例子: import java.io.*;public class Test{ pu ...

  5. IE6鼠标悬停Bug

    当鼠标放置于某个文字链接之上,文字或文字背景改变为其他颜色或样式的效果是我们最经常见到的鼠标悬停效果.在CSS中,这个效果靠伪元素:hover来实现,只不过在文字链接中:hover被应用在了锚点元素& ...

  6. 利用微信小程序实现web监控界面

    1.实现思路 利用小程序去调用公司zabbix的接口获取网站监控数据并展示出来. 2.准备阶段 1.小程序公众号 2.企业号 3.zabbix接口 3.实现过程

  7. 可以将化学结构NMR图谱这样导入Word

    在化学各个领域中,大家常常会用到ChemDraw化学绘图软件来绘制各种图形,ChemDraw因其出色的功能在全球范围内深受欢迎,但是一些用户朋友对于一些功能还不是很了解,需要通过一些教程来了解如何操作 ...

  8. OpenCV学习笔记:opencv_core模块

    一,简介: opencv最基础的库.包含exception,point,rect,size,slice,vector,matrix,image等数据结构,和相应的操作函数,以及一些基础算法. 二,分析 ...

  9. 利用Lucene将被索引文件目录中的所有文件建立索引

    1.新建两个文件夹htm和index,其中htm中存放被索引的文件,index文件中存放建立的索引文件. 2.新建解析目录中所有文件的类,用来解析指定目录下的所有文件. import java.io. ...

  10. eclipse中如何查看一个android模拟器的内部文件

    eclipse中如何查看一个android模拟器的内部文件,有时要在其中添加一个文件夹或是什么的,要手动的做这件事,而不能够用代码去完成时,就要用这个方法了. 1.首先,打开一个安卓模拟器. 2.这个 ...