日期:2014-05-17  浏览次数:20644 次

大家帮我看看这种情况的判断语句怎么写?
有同一对象的三个实例,t1,t2和t3,它们有日气量属性值,当其中一个不为空时,就将这三个日气量值值相加,我这样写的
if(t1.getRql()!=null||t2.getRql()!=null||t3.getRql()!=null){
   tem.setRql(t3.getRql()+t2.getRql()+t1.getRql()); } 
但是报空指针异常,大家帮忙提示一下我如何写这个判断语句,分情况的话该如何写?

------解决方案--------------------
t1、t2、t3首先是判断这三个对象不为null!
如果这三个其中一个为空的话、你下面getRql()的时候就为报空指针异常了!
你的getRql返回的是字符串吗?
如果是字符串的话、相加的时候最好要判断一下、要不然会出现
"值null值"
这种情况、
------解决方案--------------------
所以要先判断(t1!=null && t2!=null && t3!=null)
在满足这个条件后,然后在判断(t1.getRql()!=null
------解决方案--------------------
t2.getRql()!=null
------解决方案--------------------
t3.getRql()!=null)
然后再根据你实际情况相加减:如你的是String的话,还需要判断是否为""并且转为int等。
------解决方案--------------------
2L的写法也会错的!
只要一个是null,你就肯定报空指针错误。
必须每个值都做一下判定。
你的这个判定可以做先决条件if(t1.getRql()!=null
------解决方案--------------------
t2.getRql()!=null
------解决方案--------------------
t3.getRql()!=null)。
加方法之前必须t.getRql() == null ? 0 : t.getRql()。