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

解决方案 »

  1.   

    f((null!=t1.getRql()&&!"".equal(t1.getRql()))||(null!=t2.getRql()&&!"".equal(t2.getRql()))||(null!=t3.getRql()&&!"".equal(t3.getRql()))){
       tem.setRql(t3.getRql()+t2.getRql()+t1.getRql()); } 
      

  2.   

    if((t1.getRql()!=null)||(t2.getRql()!=null)||(t3.getRql()!=null))试试
    你的getRql()方法没有问题吧
      

  3.   

    如果t3.getRql()==null呢,那么你还让 tem.setRql(null + xxxx + null);肯定是会报空异常的啊,你在进行相加操作的签名也要判断是否为空啊。
    改成下面的写法
    tem.setRql(t3.getRql()==null? "": t3.getRql() +t2.getRql()==null? "": t2.getRql() +t1.getRql()==null? "": t1.getRql() );
      

  4.   

    t1、t2、t3首先是判断这三个对象不为null!
    如果这三个其中一个为空的话、你下面getRql()的时候就为报空指针异常了!
    你的getRql返回的是字符串吗?
    如果是字符串的话、相加的时候最好要判断一下、要不然会出现
    "值null值"
    这种情况、
      

  5.   

    你这里肯定是t1、t2、t3或者tem为null,否则不会报空指针。
      

  6.   

    所以要先判断(t1!=null && t2!=null && t3!=null)
    在满足这个条件后,然后在判断(t1.getRql()!=null||t2.getRql()!=null||t3.getRql()!=null)
    然后再根据你实际情况相加减:如你的是String的话,还需要判断是否为""并且转为int等。
      

  7.   

    2L的写法也会错的!
    只要一个是null,你就肯定报空指针错误。
    必须每个值都做一下判定。
    你的这个判定可以做先决条件if(t1.getRql()!=null||t2.getRql()!=null||t3.getRql()!=null)。
    加方法之前必须t.getRql() == null ? 0 : t.getRql()。
      

  8.   

    问题解决,修改的SQl语句。谢谢热心的大家。