JAVA 判断对象内容是否含有空值
简单判断对象是否含有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 判断对象内容是否含有空值的更多相关文章
- Java判断对象是否为NULL
Java使用反射判断对象是否为NULL 判断Java对象是否为null可以有两层含义: 第一层: 直接使用 object == null 去判断,对象为null的时候返回true,不为null的时候 ...
- NDK开发小记录 C++读取java层对象内容
这是自己NDK开发得小记录,关于C++层读取java层传来的对象内容. 很简单的一个例子, 1.首先在java层定义了一个类NumList: public class NumList { public ...
- Java判断对象类型是否为数组
判断对象是否为数组: public static void main(String[] args) { String[] a = ["1","2"]; if(a ...
- Java判断对象是否为Null/空
package com.taiping.test; import java.lang.reflect.Field; import java.lang.reflect.Type; /** * <p ...
- java判断字符串中是否含有中文
/** * 判断字符串中是否含有中文 */ public static boolean isCNChar(String s){ boolean booleanValue = false; for(in ...
- java判断字符串内容
java判断字符串是否全为数字 String str = "032";boolean isNum = str.matches("[0-9]+"); java判断 ...
- java判断字符串中是否含有汉字
原文:http://www.open-open.com/code/view/1426332240717 判断字符串中是否含有汉字: String str = "test中文汉字"; ...
- Java判断字符串中是否含有英文
实现代码: /* * 判断字符串中是否含有英文,包含返回true */ public boolean isENChar(String string) { boolean flag = false; P ...
- java 判断对象是否是某个类的类型两种方法
第一种: instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例.instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例. 用法: resul ...
随机推荐
- FreeBSD将SHELL从csh换成bash并支持中文显示
刚准备在FreeBSD下学习Shell,结果发现怎么好多命令都没有,比如declare.后来发现连bash都没有,好像bash用的多一些吧,于是就准备将csh换成bash. 由于没有bash,所以先得 ...
- Oracle----Oracle 11g XE release2安装与指导
今天上午我安装了Oracle 11g企业版,发现太占内存了,考虑到MS SQL有express版本,所以寻思着尝试尝试Oracle 11g的express版本,就是EX版本.下面是具体的安装步骤. 1 ...
- linux shell习题训练
shell习题训练 求2个数之和 计算1-100的和 将一目录下所有的文件的扩展名改为bak 编译当前目录下的所有.c文件: 打印root可以使用可执行文件数,处理结果: root's bins: 2 ...
- Memcached 常见的问题
memcached是怎么工作的? Memcached的奇妙来自两阶段哈希(two-stage hash).Memcached就像一个巨大的.存储了非常多<key,value>对的哈希表. ...
- Mysql闪回技术之 binlog2sql
1.下载 https://github.com/danfengcao/binlog2sql http://rpmfind.net Search: python-pip pip 是一个Python包管理 ...
- 程序运行缺少MSVCR110.dll
Download Visual C++ Redistributable for Visual Studio 2012 Update 4 from Official Microsoft Download ...
- poj 2195(KM求最小权匹配)
题目链接:http://poj.org/problem?id=2195 思路:我们都知道KM使用来求最大权匹配的,但如果要求最小权匹配,只需把图中的权值改为负值,求一次KM,然后权值和取反即可. ht ...
- OpenCV学习笔记十一:opencv_ocl模块
一,简介: 基于OpenCL优化的代码.
- 控制器post参数接收
一.post对象 1.后台c# public class TestController : ApiController { [HttpPost] public string SaveData1(Tb_ ...
- CodeIgniter框架——源码分析之Config.php
CI框架的配置信息被存储在$config数组中,我们可以添加自己的配置信息或配置文件到$config中: $this->config->load('filename'); //加载配置文件 ...