获取timestamp类型的数据进行if判断出现空指针异常

qq_34632091 2016-09-19 10:21:13
Java代码如下 其中gqst.getUnsuspendtime()为timestamp类型的数据
if (gqst.getUnsuspendtime().equals(null)||gqst.getUnsuspendtime().equals("null")) {
gqsj1=(int) (date.getTime()-gqst.getSuspendtime().getTime())/(1000*60);
System.out.println(date.getTime()-gqst.getSuspendtime().getTime());
} else if (null!=gqst.getUnsuspendtime()) {
gqsj2=(int) (gqst.getUnsuspendtime().getTime()-gqst.getSuspendtime().getTime())/(1000*60);
System.out.println(gqst.getUnsuspendtime().getTime()-gqst.getSuspendtime().getTime());
gqsj2=gqsj2+gqsj3;;

}
}
gqzsj=gqsj1 + gqsj3;

在第一行报空指针异常 求大神指点
...全文
1320 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
___d 2016-09-19
  • 打赏
  • 举报
回复
引用 8 楼 qq_34632091 的回复:
谢谢各位 现在已经解决了 ,应该是 null==gqst.getUnsuspendtime ()
有分么
qq_34632091 2016-09-19
  • 打赏
  • 举报
回复
谢谢各位 现在已经解决了 ,应该是 null==gqst.getUnsuspendtime ()
___d 2016-09-19
  • 打赏
  • 举报
回复
引用 5 楼 qq_34632091 的回复:
这个是有值的啊 但是unsuspend为空 需要判断这个字段是否为空然后进行执行下去
而且 你判断Unsuspendtime是否为空 应该是判断NULL跟“ ”
___d 2016-09-19
  • 打赏
  • 举报
回复
引用 5 楼 qq_34632091 的回复:
这个是有值的啊 但是unsuspend为空 需要判断这个字段是否为空然后进行执行下去
if (gqst.getUnsuspendtime().equals(null)||gqst.getUnsuspendtime()==null) { 这个只要判断==null就行了。。。不用.equal(null) 现在才看到
qq_34632091 2016-09-19
  • 打赏
  • 举报
回复
这个是有值的啊 但是unsuspend为空 需要判断这个字段是否为空然后进行执行下去
___d 2016-09-19
  • 打赏
  • 举报
回复
BaspSuspendHqsj gqst =(BaspSuspendHqsj)ls.get(i); 为啥这样去强转,怎么不定义个List<BaspSuspendHqsj > 去存数据
___d 2016-09-19
  • 打赏
  • 举报
回复
引用 2 楼 qq_34632091 的回复:
这个前面已经判断过gqst是否为空了,如果为空根本不执行这个代码
List ls =this.getHibernateTemplate().find(hql, jjbh);
		if (ls != null && ls.size() > 0) {
			Date date=new Date();
			for (int i = 0; i < ls.size(); i++) {
			 gqsj3=gqsj2;
				BaspSuspendHqsj gqst =(BaspSuspendHqsj)ls.get(i);
				if (gqst.getUnsuspendtime().equals(null)||gqst.getUnsuspendtime()==null) {
					gqsj1=(int) (date.getTime()-gqst.getSuspendtime().getTime())/(1000*60);
					System.out.println(date.getTime()-gqst.getSuspendtime().getTime());
				} else if (null!=gqst.getUnsuspendtime()) {
				     gqsj2=(int) (gqst.getUnsuspendtime().getTime()-gqst.getSuspendtime().getTime())/(1000*60);
                        System.out.println(gqst.getUnsuspendtime().getTime()-gqst.getSuspendtime().getTime());
                         gqsj2=gqsj2+gqsj3;;
				     
				}
			}
但是现在我判断getUnsuspendtime() 是否为空是出现空指针异常 是我代码有问题吗
第六行的BaspSuspendHqsj gqst =(BaspSuspendHqsj)ls.get(i); 这边的gqst 是否为空?
qq_34632091 2016-09-19
  • 打赏
  • 举报
回复
这个前面已经判断过gqst是否为空了,如果为空根本不执行这个代码
List ls =this.getHibernateTemplate().find(hql, jjbh);
		if (ls != null && ls.size() > 0) {
			Date date=new Date();
			for (int i = 0; i < ls.size(); i++) {
			 gqsj3=gqsj2;
				BaspSuspendHqsj gqst =(BaspSuspendHqsj)ls.get(i);
				if (gqst.getUnsuspendtime().equals(null)||gqst.getUnsuspendtime()==null) {
					gqsj1=(int) (date.getTime()-gqst.getSuspendtime().getTime())/(1000*60);
					System.out.println(date.getTime()-gqst.getSuspendtime().getTime());
				} else if (null!=gqst.getUnsuspendtime()) {
				     gqsj2=(int) (gqst.getUnsuspendtime().getTime()-gqst.getSuspendtime().getTime())/(1000*60);
                        System.out.println(gqst.getUnsuspendtime().getTime()-gqst.getSuspendtime().getTime());
                         gqsj2=gqsj2+gqsj3;;
				     
				}
			}
但是现在我判断getUnsuspendtime() 是否为空是出现空指针异常 是我代码有问题吗
___d 2016-09-19
  • 打赏
  • 举报
回复
gqst 是你自己实例化的引用?getUnsuspendtime()是你自己定义的方法? 如果gqst为null,那你getUnsuspendtime() 肯定报空指针

58,454

社区成员

发帖
与我相关
我的任务
社区描述
Java Eclipse
社区管理员
  • Eclipse
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧