java date为空
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java date为空相关的知识,希望对你有一定的参考价值。
mysql 数据库中 有一个时间字段date 设置允许为空 如该字段为空 当读取到这个字段时 总是报空指针异常 怎么回事 改如何处理 我是想如果为空 直接就是空置 前台页面不显示就行了
是前台显示的时候错误还是在后台读取数据库的时候就错了?是不是在前/后台哪里用到了date,如果数据库里面为空,前后台又没有用到date的话(比如用date.xxx),是不会报错的追问在service层用到这个字段了 我需要将数据库中的数据全部读取出来 在前台页面展示出来 我是把数据库的信息放到一个VO里,vo在set(get.date())这个字段时报空指针异常
追答vo.setDate(xxx.getDate()) 这样就报错?你确定vo和xxx都不为空?只有里面的getDate()才为空?
追问vo是new出来的 如下
Teacher t = new Teacher();//实体PO 里面有一个存储Date 类型的字段 当前为空
uservo u = new uservo();//将实体中数据设置到该vo date字段里
vo.setDate(t.getDate().toString);
这样就报异常了
我晕 这样肯定会报啊。你用t.getDate().toString()这样不行,你的考虑t.getDate为null的情况,因为null是没有.toString()的啊,所以你在toString()之前应该判断一下t.getDate()是否为null,相信到此你应该明白了
参考资料:IT氧吧
参考技术A 在前台或者后台先判断一下date==null?"":date,在使用不就可以了吗? 参考技术B 你用的是hibernate吗? 如果是的 如果你确定vo.setDate(xxx.getDate()) 就报异常了那么有一个可能 就是你的实体类中有设置date这个字段不能为空
我遇到过这个原因 其他的就不知道了
希望能帮到你追问
我知道问题出在哪了 是因为 我在vo里设置的时间类型是String类型 当Date 为null 时,
用Date().toString 转换的时候出的异常,也就是说 null.toString 报的异常 不为null是没问题 现在的问题是如何将Date转化为String 要考虑到null 的情况
java将数据转换成json时,日期类型为空时报错, 我不想让报错 ,为空时 就直接转为空
JSONArray olist = JSONArray.fromObject(queueList);
是不是这样写也有问题
第一个你自己处理queueList,把日期数据进行为空处理。date == null ? "":date
第二个方法,你重写fromObject方法,处理null的情况。 参考技术A 你应该提供一个方法对于某些特殊的值做处理,根据需求来,如date,bigdecimal,double,null等 最好都去想想要做什么样的处理, 参考技术B 要用JSONArray 肯定要处理queueList 把date类型转成string 参考技术C 直接JSONArray olist = new JSONArray(queueList); 参考技术D gson好用
String olist = new Gson().toJson(queueList);
以上是关于java date为空的主要内容,如果未能解决你的问题,请参考以下文章