if条件和空指针异常java中的null值

时间:2012-02-16 15:51:24

标签: java exception pointers null

我想在java中做类似的事情。

String subject=null,receiver=null,subject_db=null,receiver_db=null,cc=null,cc_db=null;
suject=msg.getSubject();
sub_db=rs.getString("subject");
receiver=msg.getreceiver();
receiver_db=rs.getString("receiver");
cc=msg.getcc();
cc_db=rs.getString("cc"); String foldername;

if((subject.equals(sub_db)) && (receiver.equals(receiver_db)) && (cc.equals(cc_db)))
  foldername="spam";
else
  foldername="Inbox";

正如您在此处所见,任何变量都可以是null。如果发生这种情况,那么它会抛出NullPointerException。我有什么方法可以做, String s1=nullString s2=null如果我比较if(s1.equals(s2)),那么它会返回true ...我知道上面的代码无法实现这一目标。但是我该怎么做呢?

如果我没有正确解释我的问题,我真的很抱歉......

我将不胜感激任何帮助..

谢谢..

3 个答案:

答案 0 :(得分:4)

怎么样......

private boolean nullsOrEquals(string s1, string s2)
{
  if (s1 == null)
    return (s2 == null);

  return s1.equals(s2);
}

if (nullsOrEquals(subject, sub_db) && [etc])
  foldername="spam";
else
  foldername="Inbox";

答案 1 :(得分:3)

if((s1 == null && s2 == null) || s1.equals(s2))

答案 2 :(得分:1)

如果我理解你想比较字符串,即使它们是空的。

为此,只需在if语句中添加一个条件,如:

if((string1 == null && string2==null) || string1.equals(s2))
{
//Your code
}