NullPointerException获奖感言

今天晚上线上项目升级,本来只是升级一个交易记录统计和订单exce导出,升级之前在测
试环境和预发布环境都OK的,没想到放到生产环境excel导出一直失败,查看服务器日志,
显示OrderController 193行报错,熟悉的NullPointerException,
奇怪的是OrderController这行是这样的
if(pt == null || pt == 0){//lineNumber-193
    objs[5] ="其他";
}
这一行怎么会报错呢,百思不得奇姐(打广告了)。
纠结了很久,于是我想到是不是编译的class文件有问题,于是乎急急忙忙找到target
目录下的OrderController.class文件的193行,代码如下
 
 
 
 
if(pt == null || pt.intValue() == 0) {//lineNumber-193

    objs[5] = "其他";
}
我靠,这会有错吗,这写法没毛病吧,这也有问题?我开始怀疑人身了,我是不是
学了假的java!!! 为了证明我自己,我又单独写了个psvm函数测试了一下这一行代码,
OK!很庆幸,我是对的。这到底是哪里出问题了呢???咦,pt.intValue()这个方法
忽然让我想到了int的自动装箱、拆箱的天赋,不过这里貌似不会执行到这个方法呀。
山重水复疑无路,似乎没有可疑的地方了,于是我坐下来吃个鸭头,喝杯可乐冷静了 
 
一下,忽然,我感到js附体,打开服务器上编译好的jar包,反编译出来,
找到OrderController.class的193行,哇塞。。亮瞎我的12k氪金*眼,分享一下代码
 
 
if(pt.intValue() == 1) {//lineNumber-193

    objs[5] = "微信";
}
我的天,问题果然出现在这里,修改代码,重新编译打包,发布,柳暗花明又一村。
在这里我深刻体会到在写代码的时候一定要写if(null ==),而非if(==null),切记!
切记!
发布了34 篇原创文章 · 获赞 46 · 访问量 29万+

猜你喜欢

转载自blog.csdn.net/u013218587/article/details/64613234