资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

java项目存在判空代码 java实体类判空

java 如何实现判断一个对象所有的属性是否为空

其实不用那么麻烦,只用定义一个方法,然后使用下面的代码片段来判断字段是否为空:

我们提供的服务有:成都网站设计、成都网站建设、微信公众号开发、网站优化、网站认证、湖里ssl等。为上千多家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的湖里网站制作公司

for (Field f : obj.getClass().getDeclaredFields()) {

f.setAccessible(true);

if (f.get(obj) == null) { //判断字段是否为空,并且对象属性中的基本都会转为对象类型来判断

......

}

}

java怎么判断一个类为空

Guest guest = (Guest)session.getAttribute("guest");

if(guest==null){

getServletContext().getRequestDispatcher(

"/error.jsp").forward(request, response);

在java中null并不是一个对象,但可以判断一个引用类型数据是否为空,用==来判断,而且null同时用来释放内存,所以可以给对象用来赋值或者判断。

java对象为空的判断

/** 

* 判断对象或对象数组中每一个对象是否为空: 对象为null,字符序列长度为0,集合类、Map为empty 

*  

* @param obj 

* @return 

*/  

public static boolean isNullOrEmpty(Object obj) {  

if (obj == null)  

return true;  

if (obj instanceof CharSequence)  

return ((CharSequence) obj).length() == 0;  

if (obj instanceof Collection)  

return ((Collection) obj).isEmpty();  

if (obj instanceof Map)  

return ((Map) obj).isEmpty();  

if (obj instanceof Object[]) {  

Object[] object = (Object[]) obj;  

if (object.length == 0) {  

return true;  

}  

boolean empty = true;  

for (int i = 0; i  object.length; i++) {  

if (!isNullOrEmpty(object[i])) {  

empty = false;  

break;  

}  

}  

return empty;  

}  

return false;  

}  

应用场景:

读取excel文件,转化为一个二维数组:Object[][] arrays

但是excel中有空行,所以需要过滤Object[][] arrays中的空的一维数组:

Java代码  

/*** 

* 过滤数组中的空元素 

*  

*  

* @param arrays 

* @return 

*/  

public static Object[][] filterEmpty(Object[][] arrays) {  

int sumNotNull = 0;  

/*** 

* 统计非空元素的总个数 

*/  

for (int i = 0; i  arrays.length; i++) {  

Object object = arrays[i];  

if (!ValueWidget.isNullOrEmpty(object)  

!SystemUtil.isNullOrEmpty((Object[]) object)) {// 判断元素是否为空  

sumNotNull = sumNotNull + 1;  

}  

}  

Object[][] filtedObjs = new Object[sumNotNull][];  

int index = 0;  

for (int i = 0; i  arrays.length; i++) {  

Object[] object_tmp = arrays[i];  

if (!ValueWidget.isNullOrEmpty(object_tmp)  

!SystemUtil.isNullOrEmpty((Object[]) object_tmp)) {// 判断元素是否为空  

filtedObjs[index++] = object_tmp;  

}  

}  

return filtedObjs;  

}  

判断对象的所有成员变量是否为空

Java代码  

/*** 

* Determine whether the object's fields are empty 

*  

* @param obj 

* @param isExcludeZero  :true:数值类型的值为0,则当做为空;----false:数值类型的值为0,则不为空 

*  

* @return 

* @throws SecurityException 

* @throws IllegalArgumentException 

* @throws NoSuchFieldException 

* @throws IllegalAccessException 

*/  

public static boolean isNullObject(Object obj, boolean isExcludeZero)  

throws SecurityException, IllegalArgumentException,  

NoSuchFieldException, IllegalAccessException {  

if(ValueWidget.isNullOrEmpty(obj)){//对象本身就为null  

return true;  

}  

ListField fieldList = ReflectHWUtils.getAllFieldList(obj.getClass());  

boolean isNull = true;  

for (int i = 0; i  fieldList.size(); i++) {  

Field f = fieldList.get(i);  

Object propertyValue = null;  

try {  

propertyValue = getObjectValue(obj, f);  

} catch (NoSuchFieldException e) {  

e.printStackTrace();  

}  

if (!ValueWidget.isNullOrEmpty(propertyValue)) {// 字段不为空  

if (propertyValue instanceof Integer) {// 是数字  

if (!((Integer) propertyValue == 0  isExcludeZero)) {  

isNull = false;  

break;  

}  

} else if (propertyValue instanceof Double) {// 是数字  

if (!((Double) propertyValue == 0  isExcludeZero)) {  

isNull = false;  

break;  

}  

}else if (propertyValue instanceof Float) {// 是数字  

if (!((Float) propertyValue == 0  isExcludeZero)) {  

isNull = false;  

break;  

}  

}else if (propertyValue instanceof Short) {// 是数字  

if (!((Short) propertyValue == 0  isExcludeZero)) {  

isNull = false;  

break;  

}  

}else {  

isNull = false;  

break;  

}  

}  

}  

return isNull;  

}  

测试:

Java代码  

@Test  

public void test_isNullObject() throws SecurityException,  

IllegalArgumentException, NoSuchFieldException,  

IllegalAccessException {  

Person2 p = new Person2();  

Assert.assertEquals(true, ReflectHWUtils.isNullObject(p, true));  

Assert.assertEquals(false, ReflectHWUtils.isNullObject(p, false));  

p.setAddress("beijing");  

Assert.assertEquals(false, ReflectHWUtils.isNullObject(p, true));  

Assert.assertEquals(false, ReflectHWUtils.isNullObject(p, false));  

p.setAddress(null);  

p.setId(0);  

Assert.assertEquals(true, ReflectHWUtils.isNullObject(p, true));  

Assert.assertEquals(false, ReflectHWUtils.isNullObject(p, false));  

}  

Person2 源代码(省略getter,setter方法):

Java代码  

import java.sql.Timestamp;  

public class Person2 {  

private int id;  

private int age;  

private double weight;  

private String personName;  

private Timestamp birthdate;  

public String identitify;  

protected String address;  

String phone;  

}

java怎么判断一个变量的值为空

方法一:

先把int类型的数据转换成String类型,然后判断String类型的数据是否为空。

示例代码:

int point;

String val=point +"";

if("".equals(val)){

// do something...

}

PS:int point不是对象,int类型为空时默认为0。

方法二:

如果point是int类型,则得到的结果是不可能是null的。

如果插入一条数据时没有插入给字段,而数据库里默认是null的值的话,可以使用

Integer point= GiftInfo.getPoints();

然后判断point是否等于空。

示例代码:

Integer point= GiftInfo.getPoints();

if(point == null){

// do something...

}

PS:GiftInfo.getPoints返回的是Integer类型,Integer类型是包括基本类型的包装类,不给赋值的时候为null。

java前台等于空的判断

在Java中,一个类为空的判断是常用的功能。但是各种类的空判断却不一样

当一个方法返回的是一个Object时,应使用==null来判断是否为空,例如在Servlet中的session判断用户是否登录可以用如下的代码

if (session.getAttribute("LoginUser")==null){

.............

}

但是如果是一个String类型的变量,或者某一个方法返回的是String类型的结果。其判断为空的方式又不一样了。需要使用String类中的equals方法。例如在JSP中获取URL中的参数,为保险起见,可以先判断这个参数是否为空,不空再获取。如果直接获取,一旦这个参数没有, 会造成空指向异常。代码如下

if (request.getParameter("id").toString().equals(null)){

out.println("未提供参数");

}else{

String id=request.getParameter("id").toString();

out.println(id);

}

假设页面地址为

如果不加判断 直接使用

String id=request.getParameter("id").toString();

out.println(id);

会造成空指向异常,而使用了判断后,这种情况下不报错,在页面上显示“未提供参数”。如果地址栏输入的是

则页面输出“123”

另外在字符串的“空”验证时还要注意一种情况,那就是“”空。

如果假想Java中有指针的概念的话,String a为null空,则表示变量没有指针去映射它;而String a为“”空,则表示该字符串有指针映射,但是映射到的内容为空。


当前名称:java项目存在判空代码 java实体类判空
转载来源:http://www.cdkjz.cn/article/doohdse.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220